簡體   English   中英

Javascript 中是否有 & 邏輯運算符

[英]Is there a & logical operator in Javascript

我想知道 Javascript 中是否有“&”邏輯運算符。 我嘗試在 Firebug(Firefox) 中運行 1 & 0 和 1 && 0 並且兩者都返回 0 。

有人告訴我 C# 接受 & 和 double &&,double 效率更高,因為它會在遇到 false 時立即退出比較循環,但我無法找到有關 Javascript 的任何信息。

有任何想法嗎?

不。 &按位 AND運算符。 &&是 Javascript 中唯一的邏輯 AND 運算符。

&&運算符為表達式1 && 0返回0 ,因為它的語義與其他類 C 語言中的相同運算符的語義不同(好吧,符號上相同)。

在 Javascript 中, &&運算符確實將其操作數強制為布爾值,但用於評估目的。 形式表達式的結果

e1 && e2 && e3 ...

是強制布爾值為false的第一個子表達式en實際值。 如果強制為布爾值時它們都為true ,則結果是最后一個en實際值。 同樣, || 運算符解釋這樣的表達式:

e1 || e2 || e3 ...

通過返回強制布爾值為true的第一個en實際值。 如果它們都是假的,那么該值就是最后一個的實際值。

這些描述中隱含的事實是&&|| 一旦滿足完成條件,就停止計算子表達式。

1 & 0 是 0。

它是一個按位運算符,而不是一個邏輯運算符。

&& 表示左右運算符的邏輯與。 這意味着只有當左右運算符都解析為布爾真時,它才會返回布爾真值。

& 表示左右運算符的按位與。 這意味着將比較每個操作數的位,結果將是 AND 運算的值,而不是布爾值。 如果您執行101 & 100則返回值為100 如果執行1 & 0 ,則返回值為0

如果有人告訴您區別僅在於效率,您就被誤導了這兩個運算符的含義。 它們有非常不同的用途。

你的朋友對 C# 的看法是錯誤的。

C# 不混合邏輯運算符和按位運算符,因此您不能在需要 && 的地方使用 & ,反之亦然。

1 & 0 返回 0

true && false 返回 false

因此,如果您正在編寫一個需要布爾值的 if 語句,則必須使用 &&。 如果你在做按位算術,那么你需要 &。

是的。 Javascript 兩者都有。 http://www.eecs.umich.edu/~bartlett/jsops.html

與 C# 中的 true 完全一樣,雙 && 版本可以在遇到 false 時立即停止,而單 & 版本可能不會。

您可以在 javascript 中按位檢查:

https://www.w3schools.com/js/js_bitwise.asp

& is 如果兩位都為 1,則將每一位設置為 1

例子:5 & 1 = 1

0101 & 0001 = 0001

&& 是 Javascript 中的邏輯運算符。 1 && 0 應該返回 false 以便它正確執行。

Javascript 具有按位 (&) 和布爾 (&&) 運算符。 && 在 1 && 0 上返回 0 的原因是因為 0 表示 false,因此 1 (true) && 0 (false) 返回 false,因為兩個運算符都必須評估為 true 才能返回 true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM