js中的not defined掩浙、undefined、null以及NaN的區(qū)別

1.not defined
 console.log(a);
//報(bào)錯(cuò):a is not defined 終止運(yùn)行

執(zhí)行結(jié)果:報(bào)錯(cuò)并提示:Uncaught ReferenceError: a is not defined鲤脏,如圖:


QQ圖片20190121152351.png

個(gè)人理解:not defined可以翻譯為未定義的,上面代碼中的a沒有被定義,所以會(huì)報(bào)錯(cuò)并提示not defined们颜。

2.undefined

一個(gè)定義了但未賦值的變量:

var a;
console.log(a);
//未報(bào)錯(cuò),提示: undefined

一個(gè)定義了但把值賦為undefined的變量:

var a = undefined;
console.log(a);
//未報(bào)錯(cuò)猎醇,提示: undefined

一個(gè)對象沒有賦值的屬性:

console.log(window.a);
//未報(bào)錯(cuò)窥突,提示: undefined
var a = [];
console.log(a.b);
//未報(bào)錯(cuò),提示: undefined
var a = {};
console.log(a.b);
//未報(bào)錯(cuò)硫嘶,提示:undefined

一個(gè)沒有返回值的函數(shù):

function a() {
}
console.log(a())

執(zhí)行結(jié)果:上面代碼執(zhí)行結(jié)果一樣:不會(huì)報(bào)錯(cuò)阻问,會(huì)打印出undefined,如圖:
QQ圖片111.png

個(gè)人理解:undefined表示"缺少值"沦疾,就是此處應(yīng)該有一個(gè)值称近,但是還沒有定義贡蓖。典型用法是:

(1)變量被聲明了,但沒有賦值時(shí)煌茬,就等于undefined斥铺。

(2) 調(diào)用函數(shù)時(shí),應(yīng)該提供的參數(shù)沒有提供坛善,該參數(shù)等于undefined晾蜘。

(3)對象沒有賦值的屬性,該屬性的值為undefined眠屎。

(4)函數(shù)沒有返回值時(shí)剔交,默認(rèn)返回undefined。

注意:not defined 和 undefined 的typeof()的值都為"undefined",所以無法用typeof()來判斷這兩者改衩。

3.null
var a = document.getElementById('main');
console.log(a);

執(zhí)行結(jié)果:不會(huì)報(bào)錯(cuò)岖常,會(huì)打印出null,如圖:
null.png

null表示"沒有對象"葫督,即該處不應(yīng)該有值竭鞍。典型用法是:

(1) 作為函數(shù)的參數(shù),表示該函數(shù)的參數(shù)不是對象橄镜。

(2) 作為對象原型鏈的終點(diǎn)偎快。
    Object.getPrototypeOf(Object.prototype)
    // null

個(gè)人理解:上面的代碼中如果實(shí)際上沒有id為main的元素,a則是null洽胶,所以null是真正不存在的東西晒夹。另外null是一個(gè)只有一個(gè)值的特殊類型。表示一個(gè)空對象引用姊氓,用typeof檢測返回是object丐怯。第二種的undefined是派生自null,所以有undefined==null翔横。

4.NaN
var a;
console.log(a*2);

執(zhí)行結(jié)果:不會(huì)報(bào)錯(cuò)读跷,會(huì)打印出NaN,如圖:
nan.png

個(gè)人理解:NaN是"Not a Number " 的簡寫棕孙,從字面上看為不是數(shù)字的意思舔亭,當(dāng)運(yùn)算無法返回正確的數(shù)值時(shí),就會(huì)返回NaN值蟀俊。也可以理解一下W3C給出的定義和用法:NaN 屬性是代表非數(shù)字值的特殊值。該屬性用于指示某個(gè)值不是數(shù)字订雾≈ぃ可以把 Number 對象設(shè)置為該值,來指示其不是數(shù)字值洼哎。
注意:null是一種特殊的object烫映;NaN是一種特殊的number沼本。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市锭沟,隨后出現(xiàn)的幾起案子抽兆,更是在濱河造成了極大的恐慌,老刑警劉巖族淮,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辫红,死亡現(xiàn)場離奇詭異,居然都是意外死亡祝辣,警方通過查閱死者的電腦和手機(jī)贴妻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蝙斜,“玉大人名惩,你說我怎么就攤上這事≡熊” “怎么了娩鹉?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長稚伍。 經(jīng)常有香客問我底循,道長,這世上最難降的妖魔是什么槐瑞? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任熙涤,我火速辦了婚禮,結(jié)果婚禮上困檩,老公的妹妹穿的比我還像新娘祠挫。我一直安慰自己,他們只是感情好悼沿,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布等舔。 她就那樣靜靜地躺著,像睡著了一般糟趾。 火紅的嫁衣襯著肌膚如雪慌植。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天义郑,我揣著相機(jī)與錄音蝶柿,去河邊找鬼。 笑死非驮,一個(gè)胖子當(dāng)著我的面吹牛交汤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播劫笙,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼芙扎,長吁一口氣:“原來是場噩夢啊……” “哼星岗!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起戒洼,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤俏橘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后圈浇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體寥掐,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年汉额,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了曹仗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡怎茫,死狀恐怖妓灌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情祥山,我是刑警寧澤掉伏,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布斧散,位于F島的核電站鸡捐,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏箍镜。R本人自食惡果不足惜色迂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赫悄。 院中可真熱鬧馏慨,春花似錦、人聲如沸倔撞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至给僵,卻和暖如春详拙,著一層夾襖步出監(jiān)牢的瞬間饶辙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工脯爪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留痕慢,地道東北人冷冗。 一個(gè)月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓蒿辙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親俺叭。 傳聞我的和親對象是個(gè)殘疾皇子泰偿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容