[英]Javascript logical operation (a === true || a === false)
我在moment.js里面找到了這段代碼。 我們為什么要這樣檢查?
if (locale === true || locale === false) {
strict = locale;
locale = undefined;
}
這用於確保locale
僅用作strict
變量/參數(如果它實際上是布爾值)。 看看那段代碼,根據是否指定了可選的代碼,它看起來可能會改變函數參數。 (在這種情況下, locale
將是strict
之前的可選項。)
它檢查locale是完全正確還是假,而不是任何其他假( undefined , null ,'', NaN ,0)或truthy值
也許我不明白你的背景。 但是,基於代碼,我認為他們想檢查locale的值是一個布爾值。
if (locale === true || locale === false) {...}
所以你可以看到他們使用三等於檢查(locale可能是另一種類型)。
“==”表示值相等但不是類型,而“===”表示值和類型相等。
var x = 7;
x == "7" // returns true
x === "7" // returns false as x is not a string
x === 7 // returns true as they are both equal in value and type
對於您提供的代碼,看起來它正在檢查locale的值和類型是否為布爾值,這就是為什么使用三等於比較以及為什么它包含true和false。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.