![](/img/trans.png)
[英]Check If statement is true or false by using javascript Truthy and Falsy Value VS '===' operator
[英]What is the difference between truthy and falsy with true and false in JavaScript?
我對 JavaScript 中的一些概念有疑問,例如(truthy, true)
和(falsy, false)
。
我知道 1 的類型不true
但問題是:為什么1 == true
?
ECMAScript 將 1 或 "ghsagh" 視為true
主要原因是什么?
我也無法理解truthy
和falsy
的含義。
這種考慮有什么好處?!
JavaScript 喜歡盡可能隱式地將值轉換為其他類型。 因此,在比較布爾值與其他類型的變量時,JavaScript 使用與舊編程語言相同的邏輯。 表示空、空或零(例如 0 或“”)的值的計算結果為 false,而任何其他值(例如 1、5、-19、“ghsfsah”或其他有意義的內容)計算結果為 true。
它為什么這樣做? 一方面,它允許開發人員在檢查變量是否有內容時有一個小捷徑。 例如,如果用戶沒有在文本字段中輸入,我們可以輕松檢查字段是否為空並提示用戶。
if ( !textfield.value ) {
alert( "Please enter something in the text box" );
}
如果您需要查看某些內容是true
還是false
,您可以使用===
。
JavaScript 在它需要的值類型方面非常靈活。 如果 JavaScript 需要一個布爾值,它會將您提供的任何值轉換為布爾值。
某些值(“真”值)轉換為真,而其他值(“假”值)轉換為假。
以下值轉換為 false,因此工作方式類似於 false:
所有其他值,包括所有對象(和數組)都轉換為 true,並像 true 一樣工作。
例如,假設變量o
包含一個對象或值null
。 您可以使用如下 if 語句顯式測試以查看 o 是否為非空:
if (o !== null){
....
}
嚴格不等於運算符!==
將o
與null
進行比較,並評估為真或假。 但是您可以省略比較,而是依賴於null
為假而對象為真這一事實:
if (o){
....
}
在第一種情況下,只有當o
不為null
才會執行 if 的主體。 因此,即使 o 設置為undefined
,代碼塊也會執行。
第二種情況不太嚴格:僅當o
不為false
或任何虛假值(例如null
或undefined
)時,它才會執行 if 的主體。 哪個 if 語句適合您的程序實際上取決於您期望分配給o
。 如果需要將null
與0
和 "" 區分開來,則應使用顯式比較。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.