JavaScript 中 var a = (1, 2); 會賦值 2 給 a。同理,函數 function test(){ return 1, 2; } 調用返回 2。這是逗號運算符的特性。
expr1, expr2, ..., exprNvar a = (1, 2);
// 相當於:
// 1; // 求值,結果丟棄
// a = 2; // 最後表達式 2 的值賦給 a
function test() {
return 1, 2;
// 返回 2
}
for (i=0, j=10; i<j; i++, j--)const fn = () => (console.log('a'), console.log('b'), 42);(init(), process(), cleanup()){a:1, b:2}、數組 [1,2]、函數參數列表混淆,那些逗號是分隔符,非運算符。Python 中 (1, 2) 是元組,而非逗號運算符。JS 無元組字面量,括號僅為分組,逗號在此處為運算符。