[英]Javascript Truthy / Falsy Operation
我對javascript true / falsy有疑問
據我所知,任何包含負數的非零數都是真實的。 但是如果是這種情況,那為什么
-1 == true //returns false
但是也
-1 == false //returns false
有人可以照亮嗎? 我會很感激。
當將==
運算符與數字操作數和布爾操作數一起使用時,布爾操作數首先轉換為數字,然后將結果與數字操作數進行比較。 這使您的陳述等同於:
-1 == Number(true)
和
-1 == Number(false)
依次是
-1 == 1
和
-1 == 0
這說明了為什么您總是看到false
結果。 如果強制轉換發生在數字操作數上,則會得到以下結果:
Boolean(-1) == true //true
不,布爾值有點像0(假)或1(真)。
這是一個例子:
console.log(0 == false); // returns true => 0 is equivalent to false console.log(1 == true); // returns true => 1 is equivalent to true console.log(-1 == false); // returns false => -1 is not equivalent to false console.log(-1 == true); // returns false => -1 is not equivalent to true
任何非零數字的評估結果為true,零則評估為false。 這等於等於true / false。
在此處執行以下代碼(並用不同的值替換-1)可以幫助您理解:
if (-1) {
true;
} else {
false;
}
除了@James Thorpe答案之外,如果要標識零和非零數字,則可以使用以下代碼:
console.log(Math.abs(-1) > 0); console.log(Math.abs(0) > 0); console.log(Math.abs(1) > 0);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.