簡體   English   中英

Javascript 邏輯運算符 OR

[英]Javascript Logical Operator OR

我想這是一個非常標准的 Javascript 邏輯運算符示例,但我發現一個錯字使答案正確很有趣。 當無聊 = fasle(錯誤拼寫錯誤)時,代碼正確執行。 為什么“fasle”有效? 任何輸入表示贊賞。

 var tired = false; var bored = true; var nap = function() { nap = tired || bored; bored = fasle; //tired = false; if ( nap = true) { console.log("they're both true!"); } else ( nap = false); { console.log("they're false!"); } };

fasle被評估為undefined ,然后在轉換為布爾值時評估為 false 。

但是false === fasle評估為 false,因為它們具有不同的類型。

這將在嚴格模式 javascript 中給您一個錯誤,因為在這種情況下不允許使用未定義的變量。

我猜您的腳本可以“正確”運行確實與您使用的瀏覽器有關,我起初否認了這一點。 在 safari 和 chrome 上測試時,這只會引發錯誤。

順便說一句, if ( nap = true)將始終為真, if ( nap = false)將始終為假。 這是因為=是賦值運算符,而==是您想要的相等比較運算符。 賦值運算符將始終評估為正確的操作數。

暫無
暫無

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

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