[英]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.