- A+
所属分类:Web前端
逗号操作符
这是个很容易被忽略的操作符,然而逗号操作符有个被忽略的很神奇的功能
在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; })();
就能被简化为一行
虽然逗号表达式有这样一个强大能力,但是也会降低代码的可读性,使不使用还是看自己吧。。。