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实现的像java、c#之类的sleep暂停的函数代码
Mar 04 Javascript
js/jquery解析json和数组格式的方法详解
Jan 09 Javascript
JS实现可关闭的对联广告效果代码
Sep 14 Javascript
jQuery入门之层次选择器实例简析
Dec 11 Javascript
JavaScript获取对象在页面中位置坐标的方法
Feb 03 Javascript
Bootstrap Paginator分页插件使用方法详解
May 30 Javascript
如何使用jquery实现文字上下滚动效果
Oct 12 Javascript
js插件Jcrop自定义截取图片功能
Oct 14 Javascript
javascript深拷贝的原理与实现方法分析
Apr 10 Javascript
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
Mar 06 jQuery
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
Jun 07 Javascript
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
May 30 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
基于flush()不能按顺序输出时的解决办法
2013/06/29 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
2014/05/15 PHP
php图片水印添加、压缩、剪切的封装类实现
2020/04/18 PHP
高质量PHP代码的50个实用技巧必备(上)
2016/01/22 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
PHPStorm 2020.1 调试 Nodejs的多种方法详解
2020/09/17 NodeJs
PHP sdk文档处理常用代码示例解析
2020/12/09 PHP
如何让DIV可编辑、可拖动示例代码
2013/09/18 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
深入分析JQuery和JavaScript的异同
2014/10/23 Javascript
Javascript中实现trim()函数的两种方法
2015/02/04 Javascript
jquery插件corner实现圆角边框的方法
2015/03/09 Javascript
三分钟带你玩转jQuery.noConflict()
2016/02/15 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
2017/01/16 Javascript
axios发送post请求,提交图片类型表单数据方法
2018/03/16 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
vue实现倒计时获取验证码效果
2020/04/17 Javascript
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
Python的动态重新封装的教程
2015/04/11 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
马来西亚网上花店:FlowerAdvisor马来西亚
2020/01/03 全球购物
酒店执行总经理岗位职责
2013/12/15 职场文书
摄影专业毕业生求职信
2014/03/13 职场文书
产品质量承诺书范文
2014/03/27 职场文书
政府信息公开实施方案
2014/05/09 职场文书
视光学专业自荐信
2014/06/24 职场文书
小学三好学生事迹材料
2014/08/15 职场文书
交警失职检讨书
2015/01/26 职场文书
公司联欢会主持词
2015/07/04 职场文书
小学教师教学反思
2016/02/24 职场文书
导游词之南京中山陵
2019/11/27 职场文书
PL350与SW11的比较
2021/04/22 无线电
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL