我不明白爲什麼this.array[0]
等於1
if this.array[0] = [(2,1)]
? Javascript如何處理2以及如何達到/使用它?圓括號如何在數組內工作?圓括號如何在數組中工作? (javascript)
如果布爾值之前爲真或假,我想用X
做不同的事情。 this.array[0] = [(true, X)]
和this.array[0] = [(false, X)]
。
我不明白爲什麼this.array[0]
等於1
if this.array[0] = [(2,1)]
? Javascript如何處理2以及如何達到/使用它?圓括號如何在數組內工作?圓括號如何在數組中工作? (javascript)
如果布爾值之前爲真或假,我想用X
做不同的事情。 this.array[0] = [(true, X)]
和this.array[0] = [(false, X)]
。
括號在這方面,作爲與最後一個項目的聲明是通過所傳遞的價值。
換句話說:
(2, 1) === 1
的2
進行評估,但是,這樣:
(foo(), bar())
有效地做:
foo();
return bar();
你想在這種情況下,什麼是[ 2,1]
我想你想要array[0] = [2,1]
。
如果您在圓括號內使用逗號運算符,它將評估這兩個項目並返回第二個項目。這是很少使用,但也有使用逗號運算符將兩個規範的原因:
您可以用逗號有更復雜的登錄在一個循環中,像這樣:
在條件for (var i = 0, j = 10; i < a && j > b; i++, j--) { }
您可以用逗號評估條件,如在此之前執行語句:
if (DoX(), CheckIfXHasBeenDoneSuccessfully()) { }
除此之外,逗號運算基本上是白開水。在括號(2,1)
中,2和1都被評估,2被忽略,1被返回。您可以在數組中使用圓括號,但幾乎不會將逗號放在圓括號內。
我相信你想是這樣的:
var bool = true; //or false, if you like
if(bool){ this.array[0] = X }
else { this.array[0] = Y }
在JavaScript中,表達式
(2, 1)
評估爲1
。在括號將其轉化爲數組之前,括號會使表達式2, 1
得到評估。
你真正想要
this.array[0] = [false, X];
它不是括號,其令人難以置信的神祕逗號。逗號將會做什麼,它會依次評估每個表達式,並返回最後一個表達式的結果。
您的代碼段可能是一個錯誤,或者某人是一個屁股。它是那種僅僅很少有用的東西,甚至在那些時候也許不應該使用,因爲它對人們有多混亂。