JavaScript中的假值是什么
本篇內容介紹了“JavaScript中的假值是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
在JavaScript中,false、0和其他形式的數字等的零(“-0”、“+0”、“0.0”和“0x0”)、null、undefined、NaN、“document.all”、“[]”、“{}”、“""”(空字符串)等值都是假值。
本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
JavaScript中的假值
-
false -
0和其他形式的數字等的零-0、+0、0.0和0x0(信貸RBT為十六進制形式)
- `”“,’‘ 和 ```-長度的字符串0 -
null
-
undefined
-
NaN
-
document.all (僅在HTML瀏覽器中)這是一個奇怪的。
document.all是一個假對象,帶有typeofasundefined。它是IE11之前的IE中的Microsoft專有功能,并作為“蓄意違反JavaScript規范”而添加到HTML規范中,因此為IE編寫的網站在嘗試訪問時不會中斷document.all.something。這是虛假的,因為它if (document.all)曾經是在條件注釋之前檢測IE的流行方法。請參閱為什么document.all虛假?詳情
“ Falsey”僅表示JavaScript的內部ToBoolean函數returnfalse。ToBooleanunderlies!value,value ? ...: …;和if (value)。這是其官方規范(2018年工作草案)(自1997年第一個ECMAscript規范以來唯一的變化就是添加了ES6的Symbols,它們始終是真實的): -
[]
-
{}
-
""(空字符串)
與==(寬松平等)的比較
值得一談的是falsy值與的松散比較==,這會使用ToNumber()并可能由于潛在的差異而引起混淆。它們有效地分為三類:
-
false, 0, -0, "", ''彼此匹配== -
例如
false == "",'' == 0因此4/2 - 2 == 'some string'.slice(11); -
null, undefined與== -
例如,n
ull == undefined但是undefined != false -
這也是值得一提的是,雖然
typeof null回報'object',null是不是一個對象,這是一個長期的錯誤/怪癖這是不固定的,以保持兼容性。它不是一個真正的對象,并且對象是真實的(document.all當在HTML中實現Javascript時會發生“惡意違反” ) -
NaN 不匹配任何東西,用
==或===,甚至沒有自己
例如NaN != NaN,NaN !== NaN,NaN !=false,NaN != null -
對于“嚴格相等”(
===),沒有這樣的分組。只有false === false。
這就是為什么許多開發人員和許多樣式指南(例如standardjs)偏愛===且幾乎從不使用的原因之一==。
真正的價值觀 == false
“ Truthy”僅表示JavaScript的內部ToBoolean函數return true。Javascript的應用怪癖要知道的(和另一個很好的理由,更喜歡===了==):這是可能的值是truthy(ToBoolean回報true),而且還== false。
你可能會認為這if (value && value == false) alert('Huh?')是不可能發生的邏輯上的可能性,但對于以下情況,它將是可能的:
-
"0"和'0'-它們是非空字符串,這是正確的,但Javascript會將==數字與等效字符串匹配(例如42 == "42")。因為0 == false,如果"0" == 0,"0" == false。 -
new Number(0)并且new Boolean(false)-它們是真實的對象,但是==看到它們的值which == false。 -
0 .toExponential(); -數值等于的對象 0 -
任何類似的構造都會為你提供虛假的值,并包裝在真實的類型中
-
[],[[]]和[0](感謝cloudfeet對JavaScript的平等表鏈接)
一些更真實的價值
這些只是一些人可能期望是虛假的價值觀,但實際上是真實的。
-
-1和所有非零負數 -
' '," ","false",'null'… 所有非空字符串,包括只是空格串 -
來自的任何內容typeof,總是返回非空字符串,例如:
-
typeof null('object'由于長期存在的錯誤/怪癖而返回字符串) -
typeof undefined(返回一個字符串'undefined') -
任何對象(
document.all瀏覽器中的“惡意違反”除外;請記住,null盡管有typeof其他建議,但這實際上不是對象)。包含: -
{} -
[] -
function(){}或() => {}(任何功能,包括空功能) -
Error以及Error -
任何正則表達式
-
用
new(包括new Number(0)和new Boolean(false))創建的任何內容 -
任何符號
true,1,"1"和[1]回報true相比彼此==。
總結
以上是生活随笔為你收集整理的JavaScript中的假值是什么的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Flash设计制作卡通风格的圣诞树步骤
- 下一篇: vue指令问题