我對JavaScript如何將位掩碼轉換爲布爾表達式感到困惑,因此您可以直接在if語句中使用它們。我說,你有兩個變量x和y(使用Node.js的REPL):JavaScript如何將位掩碼轉換爲布爾表達式?
> var x = 0x4;
> var y = 0x5;
現在你和他們,讓
> x & y
4
現在你比較布爾值:
> (x & y) == true
false
> (x & y) == false
false
但是,當您將位掩碼放在if語句中時,它的作用就像是一種魅力:
> if (x & y) { z = 3; } else { z = 7; }
3
> if (! (x & y)) { z = 3; } else { z = 7; }
7
所以我的問題是:雖然表達式x & y
不比較布爾值,它在if語句中。什麼是顛覆規則或我在這裏錯過了什麼?
嗯,我想這解釋了一切。雖然這有點尷尬。 ;) – alexraasch
歡迎來到奇觀的JavaScript世界:) – kviiri