話不多說,直接先上結論: null 和 undefined 基本相同,只有細微差別
null是表示缺少的標識,指示變數未指向任何物件,轉為數值為0undefined表示 “缺少值”,即該處應該有值,但還沒有定義,轉為數值為NaN
//(1)null轉為數值為0 console.log(Number(null));//0 console.log(null+3);//3 console.log(null == null);//true console.log(null === null); //true console.log(isNaN(null));false //(2)undefined轉為數值為NaN console.log(Number(undefined));//NaN(not a number) console.log(3+undefined);//NaN console.log(isNaN(undefined));//true //(3)null和undefined比較 console.log(null == undefined); //true,存在隱式型別轉換 console.log(null === undefined);//false /* "==="表示全等,二者型別不同,所以為false */ console.log(typeof null);//object資料型別 console.log(typeof undefined);//undefined資料型別
null 應用場景:
(1)作為函式的引數,表示該函式的引數不是物件
(2)作為物件原型鏈的終點
console.log(Object.getPrototypeOf(Object.prototype));//null
undefined 應用場景:
(1)一個沒有被賦值的變數的型別是undefined
(2)呼叫函式時,應該提供的引數沒有提供,該引數為undefined
(3)物件沒有賦值的屬性,該屬性的值為undefined
(4)一個函式如果沒有使用return陳述句指定回傳值,就會回傳undefined
//(1)變數未賦值 let a console.log(a);//undefined //(2)函式引數未賦值 (function fn(x) { console.log(x); //undefined })() //(3)物件屬性未賦值 let obj = { name:'張三' } console.log(obj.name); console.log(obj.age);//undefined //(4)函式沒有回傳值 function fn(){} var x = fn(); console.log(x);//undefined
本文來自博客園,作者:不知名前端李小白,轉載請注明原文鏈接:https://www.cnblogs.com/libo-web/p/15392956.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/309041.html
標籤:JavaScript
