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 - HTML的request类
Jan 09 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
Aug 15 Javascript
常用的JavaScript模板引擎介绍
Feb 28 Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
Nov 07 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
Mar 06 Javascript
jquery实现一个简单的表单验证实例
Mar 30 Javascript
JavaScript中省略元素对数组长度的影响
Oct 26 Javascript
微信小程序侧边栏滑动特效(左右滑动)
Jan 23 Javascript
JS中利用localStorage防止页面动态添加数据刷新后数据丢失
Mar 10 Javascript
Angularjs实现下拉框联动的示例代码
Aug 22 Javascript
原生JavaScript实现remove()和recover()功能示例
Jul 24 Javascript
js实现延迟加载的几种方法详解
Jan 19 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
PHP mkdir()定义和用法
2009/01/14 PHP
JScript的条件编译
2007/05/29 Javascript
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
网页和浏览器兼容性问题汇总(draft1)
2009/06/01 Javascript
Jquery知识点二 jquery下对数组的操作
2011/01/15 Javascript
Javascript表格翻页效果实现思路及代码
2013/08/23 Javascript
Jquery 动态生成表格示例代码
2013/12/24 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
JSONP之我见
2015/03/24 Javascript
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
2015/05/13 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
2015/07/29 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
原生JS仿QQ阅读点击展开、收起效果
2017/03/08 Javascript
薪资那么高的Web前端必看书单
2017/10/13 Javascript
JavaScript实现创建自定义对象的常用方式总结
2018/07/09 Javascript
解决Js先触发失去焦点事件再执行点击事件的问题
2018/08/30 Javascript
Python3基础之条件与循环控制实例解析
2014/08/13 Python
详解Python中__str__和__repr__方法的区别
2015/04/17 Python
Python判断值是否在list或set中的性能对比分析
2016/04/16 Python
Python selenium 三种等待方式详解(必会)
2016/09/15 Python
Python实现类的创建与使用方法示例
2017/07/25 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
Python编程快速上手——强口令检测算法案例分析
2020/02/29 Python
基于css3 animate制作绚丽的动画效果
2015/11/24 HTML / CSS
Lee牛仔裤澳大利亚官网:美国著名牛仔裤品牌
2017/09/02 全球购物
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
建筑人员岗位职责
2013/12/25 职场文书
生物制药自我鉴定
2014/01/25 职场文书
行政内勤岗位职责
2014/04/07 职场文书
校庆标语集锦
2014/06/25 职场文书
公安机关纪律作风整顿个人剖析材料材料
2014/10/10 职场文书
法院答辩状格式
2015/05/22 职场文书
遗失证明范文
2015/06/19 职场文书
MongoDB日志切割的三种方式总结
2021/09/15 MongoDB
Web应用开发TypeScript使用详解
2022/05/25 Javascript
 python中的元类metaclass详情
2022/05/30 Python