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 相关文章推荐
Discuz! 6.1_jQuery兼容问题
Sep 23 Javascript
Javascript 作用域使用说明
Aug 13 Javascript
用js实现的模拟jquery的animate自定义动画(2.5K)
Jul 20 Javascript
jQuery 拖动层(在可视区域范围内)
May 24 Javascript
IE不支持getElementsByClassName最终完美解决方案
Dec 17 Javascript
js创建一个input数组并绑定click事件的方法
Jun 12 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
Aug 05 Javascript
JS简单实现多级Select联动菜单效果代码
Sep 06 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
Sep 22 jQuery
原生javascript实现文件异步上传的实例讲解
Oct 26 Javascript
node.js +mongdb实现登录功能
Jun 18 Javascript
jquery轮播图插件使用方法详解
Jul 31 jQuery
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
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
PHP根据两点间的经纬度计算距离
2014/10/31 PHP
php实现的操作excel类详解
2016/01/15 PHP
php观察者模式应用场景实例详解
2017/02/03 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
JS 判断undefined的实现代码
2009/11/26 Javascript
JavaScript实现QueryString获取GET参数的方法
2013/07/02 Javascript
同一个网页中实现多个JavaScript特效的方法
2015/02/02 Javascript
javascript的 {} 语句块详解
2016/02/27 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
学习Bootstrap滚动监听 附调用方法
2016/07/02 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
原生JS中slice()方法和splice()区别
2017/03/06 Javascript
将 vue 生成的 js 上传到七牛的实例
2017/07/28 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
python使用tensorflow深度学习识别验证码
2018/04/03 Python
儿童学习python的一些小技巧
2018/05/27 Python
解决pandas使用read_csv()读取文件遇到的问题
2018/06/15 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
python 成功引入包但无法正常调用的解决
2020/03/09 Python
Python如何输出百分比
2020/07/31 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
2020/10/02 Python
西班牙创意礼品和小工具网上商店:Curiosite
2016/07/26 全球购物
美国著名的团购网站:Woot
2016/08/02 全球购物
从当地商店送来的杂货:Instacart
2018/08/19 全球购物
习近平在党的群众路线教育实践活动总结大会上的讲话
2014/10/21 职场文书
学习《中小学教师职业道德规范》心得体会
2016/01/18 职场文书
Mysql - 常用函数 每天积极向上
2021/04/05 MySQL
将图片保存到mysql数据库并展示在前端页面的实现代码
2021/05/02 MySQL
如何在pycharm中快捷安装pip命令(如pygame)
2021/05/31 Python
mybatis 解决从列名到属性名的自动映射失败问题
2021/06/30 Java/Android
SpringBoot集成Redis的思路详解
2021/10/16 Redis
漫画「处刑少女的生存之道」第3卷封面公开
2022/03/21 日漫
MYSQL常用函数介绍
2022/05/05 MySQL