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 相关文章推荐
在Google 地图上实现做的标记相连接
Jan 05 Javascript
jQuery实现仿腾讯微博滑出效果报告每日天气的方法
May 11 Javascript
jQuery数组处理函数整理
Aug 03 Javascript
Bootstrap栅格系统简单实现代码
Mar 06 Javascript
JavaScript之class继承_动力节点Java学院整理
Jul 03 Javascript
史上最全JavaScript常用的简写技巧(推荐)
Aug 17 Javascript
swiper 自动图片无限轮播实现代码
May 21 Javascript
Node.js 的 GC 机制详解
Jun 03 Javascript
Vue组件实现触底判断
Jun 26 Javascript
VUE组件中的 Drawer 抽屉实现代码
Aug 06 Javascript
如何基于JavaScript判断图片是否加载完成
Dec 28 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
Aug 08 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
一个程序下载的管理程序(一)
2006/10/09 PHP
用PHP查询搜索引擎排名位置的代码
2010/01/05 PHP
PHP Stream_*系列函数
2010/08/01 PHP
PHP+Mysql+jQuery实现发布微博程序 php篇
2015/10/15 PHP
变量在 PHP7 内部的实现(一)
2015/12/21 PHP
PHP批量去除BOM头内容信息代码
2016/03/11 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
jquery控制listbox中项的移动并排序
2009/11/12 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
js实现透明度渐变效果的方法
2015/04/10 Javascript
JavaScript中setTimeout和setInterval函数的传参及调用
2016/03/11 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
2016/04/29 Javascript
javascript代码调试之console.log 用法图文详解
2016/09/30 Javascript
解析jQueryEasyUI的使用
2016/11/22 Javascript
详解Nodejs基于mongoose模块的增删改查的操作
2016/12/21 NodeJs
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
Vue.js 2.0 移动端拍照压缩图片预览及上传实例
2017/04/27 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
微信小程序如何自定义table组件
2019/06/29 Javascript
NodeJS有难度的面试题(能答对几个)
2019/10/09 NodeJs
electron+vue实现div contenteditable截图功能
2020/01/07 Javascript
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python使用Socket(Https)Post登录百度的实现代码
2012/05/18 Python
python 实现插入排序算法
2012/06/05 Python
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
通过Python使用saltstack生成服务器资产清单
2016/03/01 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
HTML5 video播放器全屏(fullScreen)方法实例
2015/04/24 HTML / CSS
跑鞋、网球鞋、网球拍、服装及装备:Holabird Sports
2016/09/19 全球购物
人事主管岗位职责
2014/01/30 职场文书
市场营销计划书
2015/01/17 职场文书
教师外出学习心得体会
2016/01/18 职场文书
2019幼儿园感恩节活动策划书
2019/11/28 职场文书
Nginx进程调度问题详解
2021/09/25 Servers
详解Oracle块修改跟踪功能
2021/11/07 Oracle