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 相关文章推荐
jQuery 判断页面元素是否存在的代码
Aug 14 Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
Jan 07 Javascript
javascript不同类型数据之间的运算的转换方法
Feb 13 Javascript
基于jQuery实现仿淘宝套餐选择插件
Mar 04 Javascript
AngularJs bootstrap详解及示例代码
Sep 01 Javascript
Vue.js每天必学之数据双向绑定
Sep 05 Javascript
浅谈jQuery操作类数组的工具方法
Dec 23 Javascript
日期时间范围选择插件:daterangepicker使用总结(必看篇)
Sep 14 Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
Dec 27 Javascript
vue 实现模糊检索并根据其他字符的首字母顺序排列
Sep 19 Javascript
微信小程序实现购物车小功能
Dec 30 Javascript
HTML+VUE分页实现炫酷物联网大屏功能
May 27 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下目前为目最全的CURL中文说明
2010/08/01 PHP
php 面试碰到过的问题 在此做下记录
2011/06/09 PHP
解析数组非数字键名引号的必要性
2013/08/09 PHP
Smarty模板学习笔记之Smarty简介
2014/05/20 PHP
PHP中关键字interface和implements详解
2017/06/14 PHP
利用javascript的面向对象的特性实现限制试用期
2011/08/04 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
Js实现双击鼠标自动滚动屏幕的示例代码
2013/12/14 Javascript
js定时器的使用(实例讲解)
2014/01/06 Javascript
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
DOM基础教程之事件类型
2015/01/20 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
js解决movebox移动问题
2016/03/29 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
基于BootstrapValidator的Form表单验证(24)
2016/12/12 Javascript
js表单序列化判断空值的实例
2017/09/22 Javascript
在Vue组件中使用 TypeScript的方法
2018/02/28 Javascript
对layui中表单元素的使用详解
2018/08/15 Javascript
JS+CSS3实现的简易钟表效果示例
2019/04/13 Javascript
npm全局环境变量配置详解
2020/12/15 Javascript
用Python编写一个高效的端口扫描器的方法
2018/12/20 Python
python实现移位加密和解密
2019/03/22 Python
Pandas聚合运算和分组运算的实现示例
2019/10/17 Python
在Python中画图(基于Jupyter notebook的魔法函数)
2019/10/28 Python
python字符串反转的四种方法详解
2019/12/02 Python
python如何建立全零数组
2020/07/19 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
css3 中实现炫酷的loading效果
2019/04/26 HTML / CSS
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
2016/08/15 HTML / CSS
EJB发布WEB服务一般步骤
2012/10/31 面试题
师范生实习个人的自我评价
2013/09/28 职场文书
货代行业个人求职简历的自我评价
2013/10/22 职场文书
《春到梅花山》教学反思
2014/04/16 职场文书
品牌服务方案
2014/06/03 职场文书
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
2021/04/17 Vue.js
SQL Server 中的事务介绍
2022/05/20 SQL Server