逗號操作符
- 2021 年 7 月 3 日
- 筆記
逗號操作符
這是個很容易被忽略的操作符,然而逗號操作符有個被忽略的很神奇的功能
在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;
})();
就能被簡化為一行
雖然逗號表達式有這樣一個強大能力,但是也會降低程式碼的可讀性,使不使用還是看自己吧。。。