JavaScript中逗号运算符介绍及使用示例


Posted in Javascript onMarch 13, 2015

有一道js面试题,题目是这样的:下列代码的执行结果是什么,为什么?

var i, j, k;

for (i=0, j=0; i<10, j<6; i++, j++) {

  k = i+j;

}

document.write(k);

答案是显示10,这道题主要考察JavaScript的逗号运算符。

下面是MDN对逗号运算符的定义:

逗号运算符计算两个操作数(从左至右)并返回第二个操作数的值。

根据这个定义,可以扩展一下:

逗号运算符从左到右计算两个或多个操作数并返回最后一个操作数的值。

可以感觉一下下面的代码:

alert((0, 9));

alert((9, 0));
if (0,9) alert("ok");

if (9,0) alert("ok");

逗号运算符在实际代码中有什么样的作用呢?

1、交换变量,无需第三个变量

var a = "a", b = "b";
//方法一

a = [b][b = a, 0];
//方法二

a = [b, b = a][0];

2、简化代码

if(x){

  foo();

  return bar();

}

else{

  return 1;

}

可以简写成:

return x ? (foo(), bar()) : 1;
Javascript 相关文章推荐
js控制鼠标事件移动及移出效果显示
Oct 19 Javascript
JS获取Table中td值的方法
Mar 19 Javascript
js实现精美的图片跟随鼠标效果实例
May 16 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
Sep 04 Javascript
轻松实现Bootstrap图片轮播
Apr 20 Javascript
jQuery插件实现可输入和自动匹配的下拉框
Oct 24 Javascript
手机端js和html5刮刮卡效果
Sep 29 Javascript
jQuery中DOM节点删除之empty与remove
Jan 20 Javascript
vue-router:嵌套路由的使用方法
Feb 21 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
Oct 27 Javascript
原生js实现公告滚动效果
Jan 10 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
Dec 31 Javascript
JavaScript原生对象之String对象的属性和方法详解
Mar 13 #Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
Mar 13 #Javascript
JavaScript原生对象之Number对象的属性和方法详解
Mar 13 #Javascript
JavaScript原生对象之Date对象的属性和方法详解
Mar 13 #Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
Mar 13 #Javascript
JavaScript内存管理介绍
Mar 13 #Javascript
JavaScript中的this关键字使用方法总结
Mar 13 #Javascript
You might like
利用Memcached在php下实现session机制 替换PHP的原生session支持
2010/08/21 PHP
php之CodeIgniter学习笔记
2013/06/17 PHP
php统计数组元素个数的方法
2015/07/02 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
功能强大的php文件上传类
2016/08/29 PHP
PHP chop()函数讲解
2019/02/11 PHP
javascript实现仿银行密码输入框效果的代码
2007/12/13 Javascript
js 数组的for循环到底应该怎么写?
2010/05/31 Javascript
JS DOM 操作实现代码
2010/08/01 Javascript
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
JS弹出层的显示与隐藏示例代码
2013/12/27 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
javascript操作ul中li的方法
2015/05/14 Javascript
jQuery模拟原生态App上拉刷新下拉加载更多页面及原理
2015/08/10 Javascript
Three.js学习之正交投影照相机
2016/08/01 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
2017/09/26 jQuery
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
bootstrap table支持高度百分比的实例代码
2018/02/28 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
2018/03/15 Javascript
JavaScript 判断iPhone X Series机型的方法
2019/01/28 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
2019/04/19 Javascript
[02:46]解说DC:感谢430陪伴我们的DOTA2国际邀请赛岁月
2016/06/29 DOTA
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
详解Python的Django框架中的Cookie相关处理
2015/07/22 Python
python装饰器深入学习
2018/04/06 Python
python线程池如何使用
2020/05/28 Python
Keras 在fit_generator训练方式中加入图像random_crop操作
2020/07/03 Python
html5音频_动力节点Java学院整理
2018/08/22 HTML / CSS
Html5 webview元素定位工具的实现
2020/08/07 HTML / CSS
水果花束:Fruit Bouquets
2017/12/20 全球购物
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
工作期间打牌检讨书范文
2014/11/20 职场文书
安全保证书怎么写
2015/02/28 职场文书
七年级作文之环保作文
2019/10/17 职场文书
vue项目中的支付功能实现(微信支付和支付宝支付)
2022/02/18 Vue.js