JavaScript 中null,undefined 的區別?什麼狀況下會返回 undefined 值?

1、null,undefined 的區別?

null: 表示一個對象被定義了,值爲「空值」; undefined 表示不存在這個值markdown

typeof undefined //"undefined"
複製代碼

undefined: :是一個表示"無"的原始值或者說表示"缺乏值",就是此處應該有一個值,但尚未定義。當嘗試讀取時會返回 undefined;例如:變量被聲明瞭,但沒有賦值時,就等於 undefinedapp

typeof null //"object"
複製代碼

null : 是一個對象(空對象, 沒有任何屬性和方法);例如做爲函數的參數,表示該函數的參數不是對象;ide

注意:

在驗證 null 時,必定要使用=== ,由於 == 沒法分別 null 和 undefined函數

undefined的典型用法是:

  1. 變量被聲明瞭,但沒有賦值時,就等於 undefined
  2. 調用函數時,應該提供的參數沒有提供,該參數等於 undefined

3.對象沒有賦值的屬性,該屬性的值爲 undefined 4.函數沒有返回值時,默認返回 undefinedui

null的典型用法是:

  1. 做爲函數的參數,表示該函數的參數不是對象
  2. 做爲對象原型鏈的終點

2、JavaScript 中什麼狀況下會返回 undefined 值?

一、訪問聲明,可是沒有初始化的變量lua

var aaa;
console.log(aaa); // undefined
複製代碼

二、訪問不存在的屬性url

var aaa = {};

console.log(aaa.c);
複製代碼

三、訪問函數的參數沒有被顯式的傳遞值spa

(function (b){

console.log(b); // undefined

})();
複製代碼

四、訪問任何被設置爲 undefined 值的變量3d

var aaa = undefined;console.log(aaa); // undefined
複製代碼

五、沒有定義 return 的函數隱式返回code

function aaa(){}console.log(aaa()); // undefined
複製代碼

六、函數 return 沒有顯式的返回任何內容

function aaa(){

return;

}
console.log(aaa()); // undefined
複製代碼
相關文章
相關標籤/搜索