true 和 false也能相等

2021-08-31 20:34:55 字數 638 閱讀 4585

/**

以下讓大家看到乙個true和false相等的問題研究

*///先看第乙個東西

var b = boolean();

console.log(b);

console.log()

//得到的結果是true,足以說明空陣列在進行布林轉化時會轉化為true

//那麼自然可以得到結論!應該是false,驗證一下

console.log(!)//確實是false

//接下來看下面的東西,詭異的結果出現了

console.log( == !);// 輸出結果為true;

/*是不是無法理解上面的結果,乙個true的東西和乙個為false的比較居然是相等的。

*/

現在開始來解釋原因

== !比較的步驟如下:

首先!進行運算,那麼結果是0

等於說就變成了 == false的判斷

然後你要是檢視犀牛書上面的關於==號的比較的解釋

會發現,物件和數字比較的方式

會把物件進行tostring()轉化然後再比較

那麼.tostring() 就是""

"" == false

這種比較大家就熟悉了

返回就是true

true和false格式問題總結

最近擼 遇到了乙個最簡單的錯誤,記錄一下提醒自己以後不要再犯 和前端對接的時候,有時候資料格式不一樣,會引來 煩!比如今天,要前端傳乙個引數給我,但是明明很簡單的 卻執行不上來 因為我穿的引數需要true或者false來判斷,但是我卻忽略了它是布林值還是字串 1.如果前端穿來的是布林值,只有true...

js中true和false判斷

布林型別裡只有這6引數個返回false,其它都為trueboolean false false boolean undefined false boolean null false boolean 0 false boolean nan false boolean false 下面的就是true b...

c語言中如何使用true和false

在c99之前,我想很多人都是自己定義bool型別,以及true和false的值,比如typedef int bool或者 define bool int define true 1 define false 0 在c99出來後,沒必要這樣做了,c99定義了乙個 bool的型別,你可能會問了,為啥不是...