逗号操作符

  • A+
所属分类:Web前端
摘要

这是个很容易被忽略的操作符,然而逗号操作符有个被忽略的很神奇的功能在MDN上是这样介绍这个操作符的:


逗号操作符

这是个很容易被忽略的操作符,然而逗号操作符有个被忽略的很神奇的功能

在MDN上是这样介绍这个操作符的:

**逗号操作符** 对它的每个操作数求值(从左到右),并返回最后一个操作数的值。

看看这段代码:

function number() {     console.log("use me");     return 999; }  let test = (number(), 2); console.log(test); // use me   2 

没错,虽然逗号只会返回出最后一项的结果,但前面如果有函数也是会执行的。

再基于逗号会出现返回值这个特性,还能和箭头函数组合出现神奇的化学反应:

let number = 2; function changeNumber() {     number = 999;     return number; } let test = (() => (changeNumber(), number))(); console.log(test); // 999 

箭头函数的一个特性:当这个函数只有返回时可以省略大括号和return,而逗号表达式只是一个表达式并有一个返回值,所以原先应该写成三行的

let test = (()=>{     changeNumber();     return number; })(); 

就能被简化为一行

虽然逗号表达式有这样一个强大能力,但是也会降低代码的可读性,使不使用还是看自己吧。。。