if語句判斷條件中的逗號操作符


看到以下語句:

var a,b,c="c";
if(a="a",b="b",c==0) {
  console.log(a,b)   //a,b已賦值,但此句不執行
}
var a,b,c="c";
if(a="a",b="b",c=="c") {
  console.log(a,b)   //a,b已賦值,此句打印a,b
}

結論:從上面的語句中可以得知,if語句判斷條件中,只判斷最后一個式子,即判斷c==0是否為true,無論c==0是否成立,均執行前面的語句。

下面我們來看看"逗號操作符"。

let x = 1;

x = (x++, x);
console.log(x);
// expected output: 2

x = (2, 3);
console.log(x);
// expected output: 3

逗號操作符最常用的一種情況是:for 循環中提供多個參數。

for (var i = 0, j = 9; i <= 9; i++, j--) {
  document.writeln("a[" + i + "][" + j + "] = " + a[i][j]);
}

以上代碼使用逗號操作符在一次循環中遞增/遞減兩個變量。(需要注意的是,var 語句中的逗號不是逗號操作符,因為它不是存在於一個表達式中。)

另一個使用逗號操作符的例子是在返回值前處理一些操作。如同下面的代碼,只有最后一個表達式被返回,其他的都只是被求值。(這個和if語句中的使用方法一致)

function myFunc () {
  var x = 0;
  return (x += 1, x); // the same of return ++x;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM