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中getJSON在asp.net中的使用说明
Mar 10 Javascript
JS cookie中文乱码解决方法
Jan 28 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
May 14 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
Nov 23 Javascript
详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法
Jan 22 Javascript
axios学习教程全攻略
Mar 26 Javascript
利用n工具轻松管理Node.js的版本
Apr 21 Javascript
深入浅析Vue中的slots/scoped slots
Apr 03 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
Jun 02 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
Sep 01 Javascript
vue实现类似淘宝商品评价页面星级评价及上传多张图片功能
Oct 29 Javascript
js实现石头剪刀布游戏
Oct 11 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
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
2013/06/24 PHP
C#使用PHP服务端的Web Service通信实例
2014/04/08 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
PHP实现 APP端微信支付功能
2018/06/22 PHP
php+jQuery ajax实现的实时刷新显示数据功能示例
2019/09/12 PHP
PHP中SESSION过期设置
2021/03/09 PHP
js+xml生成级联下拉框代码
2012/07/24 Javascript
javascript类型转换使用方法
2014/02/08 Javascript
javascript实现input file上传图片预览效果
2015/12/31 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
2017/02/27 Javascript
nodejs使用express获取get和post传值及session验证的方法
2017/11/09 NodeJs
vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单
2018/09/14 Javascript
详解50行代码,Node爬虫练手项目
2019/04/22 Javascript
cordova+vue+webapp使用html5获取地理位置的方法
2019/07/06 Javascript
JS操作字符串转数字的常见方法示例
2019/10/29 Javascript
JS实现拼图游戏
2021/01/29 Javascript
微信小程序吸底区域适配iPhoneX的实现
2020/04/09 Javascript
Vue+Java+Base64实现条码解析的示例
2020/09/23 Javascript
[02:11]DOTA2上海特级锦标赛主赛事第二日RECAP
2016/03/04 DOTA
python自动格式化json文件的方法
2015/03/11 Python
进一步理解Python中的函数编程
2015/04/13 Python
Python读写unicode文件的方法
2015/07/10 Python
python查看模块,对象的函数方法
2018/10/16 Python
python从入门到精通 windows安装python图文教程
2019/05/18 Python
HTML5 文件域+FileReader 分段读取文件并上传到服务器
2017/10/23 HTML / CSS
澳大利亚排名第一的狂热牛仔品牌:ONETEASPOON
2018/11/20 全球购物
Structs界面控制层技术
2013/10/11 面试题
《孔繁森》教学反思
2014/04/17 职场文书
班风口号
2014/06/18 职场文书
ktv好的活动方案
2014/08/17 职场文书
安全责任协议书范本
2016/03/23 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP