本篇內(nèi)容介紹了“JavaScript中的假值是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計、成都網(wǎng)站制作服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)古浪免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了數(shù)千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
在JavaScript中,false、0和其他形式的數(shù)字等的零(“-0”、“+0”、“0.0”和“0x0”)、null、undefined、NaN、“document.all”、“[]”、“{}”、“""”(空字符串)等值都是假值。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
JavaScript中的假值
false
0
和其他形式的數(shù)字等的零-0
、+0
、0.0
和0x0
(信貸RBT為十六進制形式)
- `”“,’‘ 和 ```-長度的字符串0
null
undefined
NaN
document.all (僅在HTML瀏覽器中)這是一個奇怪的。document.all
是一個假對象,帶有typeof
as undefined
。它是IE11之前的IE中的Microsoft專有功能,并作為“蓄意違反JavaScript規(guī)范”而添加到HTML規(guī)范中,因此為IE編寫的網(wǎng)站在嘗試訪問時不會中斷document.all.something。這是虛假的,因為它if (document.all)
曾經(jīng)是在條件注釋之前檢測IE的流行方法。請參閱為什么document.all
虛假?詳情
“ Falsey”僅表示JavaScript的內(nèi)部ToBoolean
函數(shù)return false
。 ToBoolean
underlies !value,value ? ...
: …;和if (value)。這是其官方規(guī)范(2018年工作草案)(自1997年第一個ECMAscript規(guī)范以來唯一的變化就是添加了ES6的Symbols,它們始終是真實的):
[]
{}
""(空字符串)
與==(寬松平等)的比較
值得一談的是falsy值與的松散比較==
,這會使用ToNumber()
并可能由于潛在的差異而引起混淆。它們有效地分為三類:
false, 0, -0, "", ''
彼此匹配 ==
例如false == ""
,'' == 0
因此4/2 - 2 == 'some string'.slice(11)
;
null, undefined
與==
例如,null == undefined
但是undefined != false
這也是值得一提的是,雖然typeof null
回報'object',null
是不是一個對象,這是一個長期的錯誤/怪癖這是不固定的,以保持兼容性。它不是一個真正的對象,并且對象是真實的(document.all
當在HTML中實現(xiàn)Javascript時會發(fā)生“惡意違反” )
NaN 不匹配任何東西,用==
或===
,甚至沒有自己
例如NaN != NaN
,NaN !== NaN
,NaN !
= false
,NaN != null
對于“嚴格相等”(===
),沒有這樣的分組。只有false === false
。
這就是為什么許多開發(fā)人員和許多樣式指南(例如standardjs)偏愛===
且?guī)缀鯊牟皇褂玫脑蛑?code>==。
真正的價值觀 == false
“ Truthy”僅表示JavaScript的內(nèi)部ToBoolean
函數(shù)return true
。Javascript的應(yīng)用怪癖要知道的(和另一個很好的理由,更喜歡===
了==
):這是可能的值是truthy(ToBoolean
回報true),而且還== false
。
你可能會認為這if (value && value == false) alert('Huh?')
是不可能發(fā)生的邏輯上的可能性,但對于以下情況,它將是可能的:
"0"
和'0'
-它們是非空字符串,這是正確的,但Javascript會將==數(shù)字與等效字符串匹配(例如42 == "42"
)。因為0 == false
,如果 "0" == 0
,"0" == false
。
new Number(0)
并且new Boolean(false)
-它們是真實的對象,但是==看到它們的值which == false
。
0 .toExponential()
; -數(shù)值等于的對象 0
任何類似的構(gòu)造都會為你提供虛假的值,并包裝在真實的類型中
[]
,[[]]
和[0]
(感謝cloudfeet對JavaScript的平等表鏈接)
一些更真實的價值
這些只是一些人可能期望是虛假的價值觀,但實際上是真實的。
-1
和所有非零負數(shù)
' '
," "
,"false"
,'null'
… 所有非空字符串,包括只是空格串
來自的任何內(nèi)容typeof,總是返回非空字符串,例如:
typeof null
('object'
由于長期存在的錯誤/怪癖而返回字符串)
typeof undefined
(返回一個字符串'undefined'
)
任何對象(document.all
瀏覽器中的“惡意違反”除外;請記住,null盡管有typeof其他建議,但這實際上不是對象)。包含:
{}
[]
function(){}
或() => {}
(任何功能,包括空功能)
Error
以及 Error
任何正則表達式
用new
(包括new Number(0)
和new Boolean(false)
)創(chuàng)建的任何內(nèi)容
任何符號true,1,"1"
和[1]
回報true
相比彼此==
。
“JavaScript中的假值是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
文章標題:JavaScript中的假值是什么
本文URL:http://sd-ha.com/article34/ipdhse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、做網(wǎng)站、軟件開發(fā)、網(wǎng)頁設(shè)計公司、網(wǎng)站維護、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)