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 相关文章推荐
JavaScript转换农历类实现及调用方法
Jan 27 Javascript
jquery插件之定时查询待处理任务数量
May 01 Javascript
javaScript中push函数用法实例分析
Jun 08 Javascript
JavaScript中的Math.SQRT1_2属性使用简介
Jun 14 Javascript
js删除局部变量的实现方法
Jun 25 Javascript
vue组件中使用iframe元素的示例代码
Dec 13 Javascript
详解react-router 4.0 下服务器如何配合BrowserRouter
Dec 29 Javascript
Vue实现侧边菜单栏手风琴效果实例代码
May 31 Javascript
jQuery常见的遍历DOM操作详解
Sep 05 jQuery
详解一次Vue低版本安卓白屏问题的解决过程
May 30 Javascript
vue 实现锚点功能操作
Aug 10 Javascript
全面解析Vue中的$nextTick
Dec 24 Vue.js
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输出数组中重名的元素的几种处理方法
2012/09/05 PHP
php遍历目录输出目录及其下的所有文件示例
2014/01/27 PHP
php数据库备份还原类分享
2014/03/20 PHP
php mongodb操作类 带几个简单的例子
2016/08/25 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
javascript采用数组实现tab菜单切换效果
2012/12/12 Javascript
利用javaScript实现点击输入框弹出窗体选择信息
2013/12/11 Javascript
jquery删除数据记录时的弹出提示效果
2014/05/06 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
JS给swf传参数的实现方法
2016/09/13 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
2017/03/28 Javascript
Angularjs的$http异步删除数据详解及实例
2017/07/27 Javascript
关于js陀螺仪的理解分析
2019/04/11 Javascript
浅谈Express.js解析Post数据类型的正确姿势
2019/05/30 Javascript
在mpvue框架中使用Vant WeappUI组件库的注意事项【推进】
2019/06/09 Javascript
nodejs实现获取本地文件夹下图片信息功能示例
2019/06/22 NodeJs
原生JS实现烟花效果
2020/03/10 Javascript
微信小程序个人中心的列表控件实现代码
2020/04/26 Javascript
vuex Module将 store 分割成模块的操作
2020/12/07 Vue.js
[07:47]DOTA2国际邀请赛采访专栏:探访Valve总部
2013/08/08 DOTA
python list 合并连接字符串的方法
2013/03/09 Python
python爬虫入门教程之糗百图片爬虫代码分享
2014/09/02 Python
利用Psyco提升Python运行速度
2014/12/24 Python
Python面向对象类继承和组合实例分析
2018/05/28 Python
Python实现Event回调机制的方法
2019/02/13 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
Python中sorted()排序与字母大小写的问题
2020/01/14 Python
python判断链表是否有环的实例代码
2020/01/31 Python
python用什么编辑器进行项目开发
2020/06/17 Python
Debenhams百货英国官方网站:Debenhams UK
2016/07/12 全球购物
《分一分》教学反思
2014/04/13 职场文书
护理专业毕业生自荐信
2014/06/15 职场文书
2019通用版劳动合同范本!
2019/07/11 职场文书
创业计划之特色精品店
2019/08/12 职场文书
python脚本框架webpy模板赋值实现
2021/11/20 Python