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 相关文章推荐
从sohu弄下来的flash中展示图片的代码
Apr 27 Javascript
JS中toFixed()方法引起的问题如何解决
Nov 20 Javascript
JS中window.open全屏命令解析及使用示例
Dec 11 Javascript
jQuery动态添加、删除元素的方法
Jan 09 Javascript
zepto.js中tap事件阻止冒泡的实现方法
Feb 12 Javascript
js判断checkbox是否选中个数的方法(超简单)
Aug 19 Javascript
JS实现的DIV块来回滚动效果示例
Feb 07 Javascript
利用jQuery解析获取JSON数据
Apr 08 jQuery
浅谈vue中数据双向绑定的实现原理
Sep 14 Javascript
vue-form表单验证是否为空值的实例详解
Oct 29 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
Nov 17 Javascript
如何利用React实现图片识别App
Feb 18 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静态类
2006/11/25 PHP
ASP和PHP都是可以删除自身的
2007/04/09 PHP
采用ThinkPHP中F方法实现快速缓存实例
2014/06/13 PHP
yii2带搜索功能的下拉框实例详解
2016/05/12 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
给moz-firefox下添加IE方法和属性
2007/04/10 Javascript
javascript 实用的文字链提示框效果
2010/06/30 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
2015/08/05 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
JavaScript中用let语句声明作用域的用法讲解
2016/05/20 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
2016/10/14 Javascript
jQuery简单获取DIV和A标签元素位置的方法
2017/02/07 Javascript
JavaScript之Map和Set_动力节点Java学院整理
2017/06/29 Javascript
Vue使用mixins实现压缩图片代码
2018/03/14 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
layui自己添加图片按钮并点击跳转页面的例子
2019/09/14 Javascript
JS函数本身的作用域实例分析
2020/03/16 Javascript
跟老齐学Python之大话题小函数(2)
2014/10/10 Python
python使用wmi模块获取windows下的系统信息 监控系统
2015/10/27 Python
Python字符串处理实现单词反转
2017/06/14 Python
Python自定义线程类简单示例
2018/03/23 Python
使用python批量化音乐文件格式转换的实例
2019/01/09 Python
Python matplotlib学习笔记之坐标轴范围
2019/06/28 Python
python如何实现数据的线性拟合
2019/07/19 Python
python异常处理try except过程解析
2020/02/03 Python
HTML5学习心得总结(推荐)
2016/07/08 HTML / CSS
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
网站域名和主机:Domain.com
2019/04/01 全球购物
城市轨道专业个人求职信范文
2013/09/23 职场文书
Python中zipfile压缩包模块的使用
2021/05/14 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
2021/11/11 Python
36个正则表达式(开发效率提高80%)
2021/11/17 Javascript