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 判断函数类型完美解决方案
Sep 02 Javascript
Javascript Web Slider 焦点图示例源码
Oct 10 Javascript
javascript 常用验证函数总结
Jun 28 Javascript
单击按钮发送验证码,出现倒计时的简单实例
Mar 17 Javascript
js按条件生成随机json:randomjson实现方法
Apr 07 Javascript
vue2.0结合Element实现select动态控制input禁用实例
May 12 Javascript
在vue.js中抽出公共代码的方法示例
Jun 08 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
Oct 24 Javascript
vue如何根据网站路由判断页面主题色详解
Nov 02 Javascript
vue-better-scroll 的使用实例代码详解
Dec 03 Javascript
基于vue通用表单解决方案的思考与分析
Mar 16 Javascript
浅入深出Vue之自动化路由
Aug 06 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
日本十大惊悚动漫
2020/03/04 日漫
要会喝咖啡也要会知道咖啡豆
2021/03/03 咖啡文化
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
php 删除一维数组中某一个值元素的操作方法
2018/02/01 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
2020/09/12 Javascript
jQuery旋转插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
2013/01/16 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
2013/06/08 Javascript
JS图片根据鼠标滚动延时加载的实例代码
2013/07/13 Javascript
javascript实现瀑布流加载图片原理
2016/02/02 Javascript
教你如何终止JQUERY的$.AJAX请求
2016/02/23 Javascript
JS学习之表格的排序简单实例
2016/05/16 Javascript
整理关于Bootstrap过渡动画的慕课笔记
2017/03/29 Javascript
AngularJS读取JSON及XML文件的方法示例
2017/05/25 Javascript
在一般处理程序(ashx)中弹出js提示语
2017/08/16 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
JS实现transform实现扇子效果
2020/01/17 Javascript
举例讲解Python面向对象编程中类的继承
2016/06/17 Python
Python实现登录接口的示例代码
2017/07/21 Python
Pyspider中给爬虫伪造随机请求头的实例
2018/05/07 Python
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
Python实现微信消息防撤回功能的实例代码
2019/04/29 Python
windows下Python安装、使用教程和Notepad++的使用教程
2019/10/06 Python
python使用rsa非对称加密过程解析
2019/12/28 Python
python实现飞机大战游戏(pygame版)
2020/10/26 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
BOSE德国官网:尽探索之力,享音乐之极
2016/12/11 全球购物
仓库管理制度
2014/01/21 职场文书
公司离职证明标准样本
2014/10/05 职场文书
2015年预算员工作总结
2015/05/14 职场文书
《思路决定出路》读后感3篇
2019/12/11 职场文书