JS篇 undefined的由来
在<<Javascript 權(quán)威指南>>中,undefined常常被解釋為:對(duì)應(yīng)的值的缺失,對(duì)應(yīng)以下四種情況:
1. 無(wú)賦值 變量被聲明了,但沒(méi)有賦值時(shí),就等于undefined。
2. 屬性不存在 引用對(duì)象中不存在屬性,該屬性的值為undefined。
3. 形參未賦值 調(diào)用函數(shù)時(shí),應(yīng)該提供的參數(shù)沒(méi)有提供,該參數(shù)等于undefined。
4. 函數(shù)無(wú)返回值 函數(shù)沒(méi)有返回值時(shí),默認(rèn)返回undefined。
實(shí)際上,undefined可以被當(dāng)做除primitive原始類(lèi)型和object類(lèi)型之外的第三種類(lèi)型:
window下的undefinded屬性為undefined類(lèi)型;這個(gè)類(lèi)型只有一個(gè)值:undefined;
null被當(dāng)做object類(lèi)型,是因?yàn)閠ypeof null === "object";
而null instatnceof Object === false是因?yàn)閚ull處于原型鏈的頂端,而不是Object.prototype原型節(jié)點(diǎn)的子節(jié)點(diǎn);
typeof 通過(guò)primitive,object,undefined類(lèi)型判斷 instanceof 通過(guò)原型鏈判斷
在<<Speaking Javascript>>中,描述了設(shè)計(jì)undefined原因:
1. 避免類(lèi)型轉(zhuǎn)換上的錯(cuò)誤:當(dāng)因?yàn)榫幊淌韬鰰r(shí)(聲明了變量,卻忘記給變量賦值,會(huì)引起異常)
Number(null) // 0 Number(undefined) // NaN Boolean(null) // false Boolean(undefined) // NaN
參考:
編程的細(xì)節(jié)之美——undefined與null的區(qū)別 http://www.tuicool.com/articles/B7FFzez
總結(jié)
以上是生活随笔為你收集整理的JS篇 undefined的由来的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 诛仙手游新物品幻灵石详细介绍 幻灵石在哪
- 下一篇: tkinter之输入框(Entry)