逗号操作符

逗号操作符

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

在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;
})();

就能被简化为一行

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

逗号操作符

上一篇:CosId 1.1.0 发布,通用、灵活、高性能的分布式 ID 生成器


下一篇:Pandas 多层索引转化为列