国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

《javascript高級程序設計》筆記:undefined和null

codeKK / 1426人閱讀

摘要:表示沒有對象,即該處不應該有值。典型用法是作為函數的參數,表示該函數的參數不是對象。作為對象原型鏈的終點。表示缺少值,就是此處應該有一個值,但是還沒有定義。

undefined 和 null 的簡單介紹

undefined 和 null 都是簡單數據類型,且對應的我數據類型下有且僅有一個值,分別為undefined和null;

《javascript高級程序設計》書中這樣描述:

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

JavaScript的最初版本是這樣區分的:null是一個表示"無"的對象,轉為數值時為0;undefined是一個表示"無"的原始值,轉為數值時為NaN

Number(undefined)
// NaN

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

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

null表示"沒有對象",即該處不應該有值。典型用法是:
(1) 作為函數的參數,表示該函數的參數不是對象。
(2) 作為對象原型鏈的終點。

Object.getPrototypeOf(Object.prototype)
// null

undefined表示"缺少值",就是此處應該有一個值,但是還沒有定義。典型用法是:
(1)變量被聲明了,但沒有賦值時,就等于undefined。
(2)調用函數時,應該提供的參數沒有提供,該參數等于undefined。
(3)對象沒有賦值的屬性,該屬性的值為undefined。
(4)函數沒有返回值時,默認返回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
如何區分為定義和未初始化
var age;

alert(age); // "undefined"
alert(msg); // 報錯:age is not defined

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

困惑:對未初始化的變量執行 typeof 操作符會返回 undefined 值,而對未聲明 的變量執行 typeof 操作符同樣也會返回 undefined 值。我們應該如何區分?

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

參考:阮一峰 undefined與null的區別

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/84745.html

相關文章

  • javascript高級程序設計筆記:關系運算符與相等運算符

    摘要:要比較相等性之前,不能將和轉換成其他任何值。如果有一個操作數是,則相等操作符返回,而不相等操作符返回。重要提示即使兩個操作數都是,相等操作符也返回因為按照規則,不等于。 關系運算符 關系運算符有小于()、小于等于(=)四種,它們都返回一個布爾值 《javascript高級程序設計》書中的規則是這樣描述運算規則: (1)如果兩個操作數都是數值,則執行數值比較; (2)如果兩個操作數都是字...

    Blackjun 評論0 收藏0
  • JavaScript高級程序設計筆記:基本概念

    摘要:一寫在前面最近重讀高級程序設計,總結下來,查漏補缺。但這種影響是單向的修改命名參數不會改變中對應的值。這是因為對象的長度是由傳入的參數個數決定的,不是由定義函數時的命名參數的個數決定的。實際改變會同步,改變也會同步 一、寫在前面 最近重讀《JavaScript高級程序設計》,總結下來,查漏補缺。 二、JS簡介 2.1 JS組成 ECMAscript:以ECMA-262為基礎的語言,由...

    ygyooo 評論0 收藏0
  • JavaScript高級程序設計學習筆記三(基本語法)

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

    Mike617 評論0 收藏0
  • 讀書筆記(06) - 語法基礎 - JavaScript高級程序設計

    摘要:寫在開頭本篇是小紅書筆記的第六篇,也許你會奇怪第六篇筆記才寫語法基礎,筆者是不是穿越了。可移步筆者的文章中替換方式參考文檔高級程序設計作者以樂之名本文原創,有不當的地方歡迎指出。 showImg(https://segmentfault.com/img/bVblGMc?w=600&h=400); 寫在開頭 本篇是小紅書筆記的第六篇,也許你會奇怪第六篇筆記才寫語法基礎,筆者是不是穿越了。...

    iOS122 評論0 收藏0
  • JavaScript高級程序設計筆記:基本概念(三)

    摘要:數據類型中有種簡單數據類型也稱為基本數據類型和。因為特殊值被認為是一個空的對象引用。盡管和有這樣的關系,但它們的用途完全不同。這樣做不僅可以體現作為空對象指針的慣例,而且也有助于進一步區分和。 數據類型 ECMAScript中有5種簡單數據類型(也稱為基本數據類型):undefined,null,boolean,number和string。 typeof typeof null會返回o...

    jas0n 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<