簡體   English   中英

Javascript Truthy / Falsy操作

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

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