引言:有的公司面试前端开发的时候,可能会问JavaScript逗号操作符的问题,详情请参考文章最后的链接。
知识结构:
JavaScript逗号操作符,在MDN上是这么说的:
The comma operator evaluates each of its operands (from left to right) and returns the value of the last operand.
大意是“逗号操作符会从左到右计算每个操作数的值,然后返回最后一个操作数的值”。
这应该是个少见的用法,平时开发中也没遇到过,如有例子,感谢您提供一下。下面说一下常用的用法和这个不常用的。
-
逗号可以用于变量声明,例:
var a,b,c,d,e;
有个细节需要注意的是:这里的逗号不算是个操作符,原因还是MDN上的解释:Note that the comma in the var statement is not the comma operator, because it doesn't exist within an expression. Rather, it is a special character in var statements to combine multiple of them into one. Practically, that comma behaves almost the same as the comma operator, though.还有个东西需要提出的是,百度JavaScript规范中,不推荐这种变量的声明方式,更推荐的是每个var只声明一个变量。[强制] 每个 var 只能声明一个变量。我同意百度的用法。
解释:
一个 var 声明多个变量,容易导致较长的行长度,并且在修改时容易造成逗号和分号的混淆。 -
用于隔开函数参数、对象的属性。例子:
function foo(a, b) { //code goes here } var person={ name:"Byron", age:"24" };
注意这些逗号也不是逗号操作符。 -
逗号操作符用在for循环当中。这个用法的依据就是文章刚开始说的:The comma operator evaluates each of its operands (from left to right) and returns the value of the last operand.例子:
for (var i = 0, j = 9; i <= 9; i++, j--) { console.log("a[" + i + "][" + j + "]); }
-
还有个用法,不常见,MDN上提供的:Processing and then returning(执行然后返回):
function myFunc () { var x = 0; return (x += 1, x); // the same of return ++x; }
这个用法和 ++ x一个用法,感觉没啥意义。
参考资料:
JavaScript面试时候的坑洼沟洄——逗号、冒号与括号
相关推荐
ECMAScript2021中文最新,ECMAScript2021中文文档,第1-6章,持续更新,喜欢请star。git地址https://github.com/fangniyima/ECMAScript-notes
JavaScript常用运算符和操作符总结(教辅)JavaScript常用运算符和操作符总结(教辅)JavaScript常用运算符和操作符总结(教辅)JavaScript常用运算符和操作符总结(教辅)JavaScript常用运算符和操作符总结(教辅)...
ECMAscript基础
Javascript解释器,在ECMAScript中运行Javascript代码
js 学习必备。 ECMAScript5.1中文版
自 1997 年第一版出版以来,ECMAScript 已经发展成为世界上使用最广泛的通用编程语言之一。它最广为人知的是嵌入在Web浏览器中的语言,但也已广泛用于服务器和嵌入式应用程序。 ECMAScript 基于几种原始技术,最著名...
7.6在参数中使用尾后逗号 62 7.7箭头函数 62 7.7.1基本语法 62 [2] 7.7.2箭头必须与参数在同一行 63 7.7.3不绑定this 63 7.7.4没有arguments对象 65 7.7.5定义方法时使用箭头函数 65 7.7.6不能用作构造函数 65 ...
主要介绍了ECMAScript 5中的属性描述符详解,本文讲解了Object.defineProperty、数据描述符、存取描述符、获取属性描述符、对象控制等内容,需要的朋友可以参考下
Learning ECMAScript 6 Learning ECMAScript 6 Learning ECMAScript 6 Learning ECMAScript 6
Understanding ECMAScript 6 中文版
ECMAScript Javascript Promise 详解
此标准定义了 ECMAScript 脚本语言。本节包含对 ECMAScript 语言非规范性的概述。
ecmascript手册,可以通过手册料及基于此规范的语言
ECMAScript 6 入门(第三版)
ECMAScript语言概述 ECMAScript对象概述(原型链Prototype Chain) ECMA-262主要术语 ECMAScript执行环境(作用域链Scope Chain,闭包机制) ECMAScript函数(new原理) ECMAScript内部属性(参考) ECMAScript执行环境作用...
ECMAScript 2018快速入门
《ECMAScript 6 入门》是一本开源的 JavaScript 语言教程,全面介绍 ECMAScript 6 新引入的语法特性。 本书覆盖 ES6 与上一个版本 ES5 的所有不同之处,对涉及的语法知识给予详细介绍,并给出大量简洁易懂的示例代码...
ECMAScript 中的相等操作符由两个等于号 ( == ) 表示,如果两个操作数相等,则返回 true。 相等操作符会先转换操作数(通常称为强制转型),然后比较它们的相等性。 在转换不同的数据类型时,相等操作符遵循下列基本...
ECMAscript 6.0PDF,先说清楚,这是一个需要对js 5.0和用过模块化框架的有一些基础的人,更容易理解
ECMAScript的一个安全要求实现