亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

《javascript高級(jí)程序設(shè)計(jì)》筆記:undefined和null

codeKK / 1482人閱讀

摘要:表示沒有對(duì)象,即該處不應(yīng)該有值。典型用法是作為函數(shù)的參數(shù),表示該函數(shù)的參數(shù)不是對(duì)象。作為對(duì)象原型鏈的終點(diǎn)。表示缺少值,就是此處應(yīng)該有一個(gè)值,但是還沒有定義。

undefined 和 null 的簡(jiǎn)單介紹

undefined 和 null 都是簡(jiǎn)單數(shù)據(jù)類型,且對(duì)應(yīng)的我數(shù)據(jù)類型下有且僅有一個(gè)值,分別為undefined和null;

《javascript高級(jí)程序設(shè)計(jì)》書中這樣描述:

在使用 var 聲明變量但未對(duì)其加以初始化時(shí),這個(gè)變量的值就是 undefined;
從邏輯角度來看,null 值表示一個(gè)空對(duì)象指針,而這也正是使用 typeof 操作符檢測(cè) null 值時(shí)會(huì)返回"object"的原因;

JavaScript的最初版本是這樣區(qū)分的:null是一個(gè)表示"無"的對(duì)象,轉(zhuǎn)為數(shù)值時(shí)為0;undefined是一個(gè)表示"無"的原始值,轉(zhuǎn)為數(shù)值時(shí)為NaN

Number(undefined)
// NaN

Number(null)
// 0
目前的用法

null和undefined在實(shí)際使用中基本是同義的,只有一些細(xì)微的差別。

null表示"沒有對(duì)象",即該處不應(yīng)該有值。典型用法是:
(1) 作為函數(shù)的參數(shù),表示該函數(shù)的參數(shù)不是對(duì)象。
(2) 作為對(duì)象原型鏈的終點(diǎn)。

Object.getPrototypeOf(Object.prototype)
// null

undefined表示"缺少值",就是此處應(yīng)該有一個(gè)值,但是還沒有定義。典型用法是:
(1)變量被聲明了,但沒有賦值時(shí),就等于undefined。
(2)調(diào)用函數(shù)時(shí),應(yīng)該提供的參數(shù)沒有提供,該參數(shù)等于undefined。
(3)對(duì)象沒有賦值的屬性,該屬性的值為undefined。
(4)函數(shù)沒有返回值時(shí),默認(rèn)返回undefined。

var i;
i // undefined

function f(x){console.log(x)}
f() // undefined

var  o = new Object();
o.p // undefined

var x = f();
x // undefined
如何區(qū)分為定義和未初始化
var age;

alert(age); // "undefined"
alert(msg); // 報(bào)錯(cuò):age is not defined

alert(typeof age); // undefined
alert(typeof msg); // undefined

困惑:對(duì)未初始化的變量執(zhí)行 typeof 操作符會(huì)返回 undefined 值,而對(duì)未聲明 的變量執(zhí)行 typeof 操作符同樣也會(huì)返回 undefined 值。我們應(yīng)該如何區(qū)分?

// 判斷某個(gè)變量x是否聲明
try{
    x in window;
    alert(true);
    // ...
} catch(e) {
    alert(false);
    // ...
}

參考:阮一峰 undefined與null的區(qū)別

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/84745.html

相關(guān)文章

  • javascript高級(jí)程序設(shè)計(jì)筆記:關(guān)系運(yùn)算符與相等運(yùn)算符

    摘要:要比較相等性之前,不能將和轉(zhuǎn)換成其他任何值。如果有一個(gè)操作數(shù)是,則相等操作符返回,而不相等操作符返回。重要提示即使兩個(gè)操作數(shù)都是,相等操作符也返回因?yàn)榘凑找?guī)則,不等于。 關(guān)系運(yùn)算符 關(guān)系運(yùn)算符有小于()、小于等于(=)四種,它們都返回一個(gè)布爾值 《javascript高級(jí)程序設(shè)計(jì)》書中的規(guī)則是這樣描述運(yùn)算規(guī)則: (1)如果兩個(gè)操作數(shù)都是數(shù)值,則執(zhí)行數(shù)值比較; (2)如果兩個(gè)操作數(shù)都是字...

    Blackjun 評(píng)論0 收藏0
  • JavaScript高級(jí)程序設(shè)計(jì)筆記:基本概念

    摘要:一寫在前面最近重讀高級(jí)程序設(shè)計(jì),總結(jié)下來,查漏補(bǔ)缺。但這種影響是單向的修改命名參數(shù)不會(huì)改變中對(duì)應(yīng)的值。這是因?yàn)閷?duì)象的長(zhǎng)度是由傳入的參數(shù)個(gè)數(shù)決定的,不是由定義函數(shù)時(shí)的命名參數(shù)的個(gè)數(shù)決定的。實(shí)際改變會(huì)同步,改變也會(huì)同步 一、寫在前面 最近重讀《JavaScript高級(jí)程序設(shè)計(jì)》,總結(jié)下來,查漏補(bǔ)缺。 二、JS簡(jiǎn)介 2.1 JS組成 ECMAscript:以ECMA-262為基礎(chǔ)的語言,由...

    ygyooo 評(píng)論0 收藏0
  • JavaScript高級(jí)程序設(shè)計(jì)學(xué)習(xí)筆記三(基本語法)

    摘要:數(shù)據(jù)類型中有種簡(jiǎn)單數(shù)據(jù)類型也稱為基本數(shù)據(jù)類型和。在中非空字符串,非零數(shù)字,任意對(duì)象,都被認(rèn)為。而空字符串,和,,認(rèn)為是。用于表示整數(shù)和浮點(diǎn)數(shù)。標(biāo)識(shí)符由數(shù)字字母下劃線美元符組成,但首字母不能是數(shù)字。變量方法對(duì)象命名推薦駝峰法。 JavaScript語法 一.語法簡(jiǎn)介 因?yàn)镴avaScript語法和Java等語法非常類似。所以只是簡(jiǎn)單介紹一下。 大小寫 JavaScript是大小寫敏感的語...

    Mike617 評(píng)論0 收藏0
  • 讀書筆記(06) - 語法基礎(chǔ) - JavaScript高級(jí)程序設(shè)計(jì)

    摘要:寫在開頭本篇是小紅書筆記的第六篇,也許你會(huì)奇怪第六篇筆記才寫語法基礎(chǔ),筆者是不是穿越了??梢撇焦P者的文章中替換方式參考文檔高級(jí)程序設(shè)計(jì)作者以樂之名本文原創(chuàng),有不當(dāng)?shù)牡胤綒g迎指出。 showImg(https://segmentfault.com/img/bVblGMc?w=600&h=400); 寫在開頭 本篇是小紅書筆記的第六篇,也許你會(huì)奇怪第六篇筆記才寫語法基礎(chǔ),筆者是不是穿越了。...

    iOS122 評(píng)論0 收藏0
  • JavaScript高級(jí)程序設(shè)計(jì)筆記:基本概念(三)

    摘要:數(shù)據(jù)類型中有種簡(jiǎn)單數(shù)據(jù)類型也稱為基本數(shù)據(jù)類型和。因?yàn)樘厥庵当徽J(rèn)為是一個(gè)空的對(duì)象引用。盡管和有這樣的關(guān)系,但它們的用途完全不同。這樣做不僅可以體現(xiàn)作為空對(duì)象指針的慣例,而且也有助于進(jìn)一步區(qū)分和。 數(shù)據(jù)類型 ECMAScript中有5種簡(jiǎn)單數(shù)據(jù)類型(也稱為基本數(shù)據(jù)類型):undefined,null,boolean,number和string。 typeof typeof null會(huì)返回o...

    jas0n 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<