null和undefined相等嗎 null和undefined有什么異同點(diǎn)?
null和undefined有什么異同點(diǎn)?Undefined表示變量聲明但未初始化時(shí)的值。Null表示它打算保存對象,但對象的值尚未保存。邏輯上,空值表示空對象指針。JavaScript(ECMASc
null和undefined有什么異同點(diǎn)?
Undefined表示變量聲明但未初始化時(shí)的值。Null表示它打算保存對象,但對象的值尚未保存。邏輯上,空值表示空對象指針。JavaScript(ECMAScript標(biāo)準(zhǔn))中有五種基本類型:未定義、null、Boolean、number、string和復(fù)雜類型對象??梢钥吹絥ull和undefined屬于不同的類型。未初始化的定義值按typeof檢測為“未定義”(字符串),而空值按typeof檢測為“對象”(字符串)。不建議在任何時(shí)候?qū)⒆兞匡@式設(shè)置為未定義,但如果保存對象的變量沒有真正保存對象,則應(yīng)將其設(shè)置為null。實(shí)際上,未定義的值是從空值派生的。ECMAScript標(biāo)準(zhǔn)規(guī)定相等性測試應(yīng)返回true
當(dāng)調(diào)用頻率較高時(shí),會(huì)觸發(fā)更高級別的JIT。然后更高級別的JIT有一個(gè)bug,結(jié)果是錯(cuò)誤的,所以先是false,然后是true。
為什么typeof null ===
未定義值和未定義值未定義,null是特殊對象,Nan(不是數(shù)字)是特殊數(shù)字,表示非數(shù)字。(1) Undefined等于null;(2)Nan不等于任何值,也不等于它本身。
undefined等于null么?
在JavaScript中,Undefined、Nan和infinity是全局對象窗口的屬性。所以它們可以被賦值,但是由于它們的內(nèi)部屬性[[writable
為false,賦值實(shí)際上是無效的。認(rèn)證:
Object.getOwnPropertyDescriptor(window,“undefined”)//result://object{value:undefined,writeable:false,enumerable:false,configurable:false}
可以看出undefined確實(shí)是window的一個(gè)屬性,不能寫入。
Null與true和false一樣,是一個(gè)文字量和JavaScript的保留字。換句話說,它們類似于123和“foobar”,不能賦值。
為什么undefined,NaN和Infinity可以被賦值,而null不可以?
空表示空。對于指針,這意味著它不指向任何有意義的內(nèi)存地址。未定義的意思是未定義。這意味著根本不存在這樣的變量。