== or ===
undefined === null// 会判断两个值的类型
false
undefined == null // 不会进行隐式转换
true
null和undefined 的对比
null —— 空对象的引用,对象的初始值
typeof null //object,类c语言的object初始化值都是null,但是null是一个原始值,所以我们认为null是空对象的引用
let arr = [] // 空数组的初始化
let obj = {} // 空对象的初始化
Boolean(null)
// false
String(null)
// "null"
Number(null)
// 0
undefined ——未定义, 原始值的初始值
// 环境为 chrome
typeof undefined // undefined 是关键字,但是在IE8时不算关键字,可以更改 undefined的值
"undefined"
// 隐式转换
Boolean(undefined)
// false
String(undefined)
// "undefined"
Number(undefined)
// NaN
-
使用场景:
-
变量未定义
-
已声明未赋值的变量
-
let a ; console.log(a) // undefined
-
-
-
对象属性未定义
-
获取对象不存在的属性引用
-
let a = { } ; console.log(a.b) // undefined
-
-
-
函数返回值未定义
-
函数没有返回值的情况
-
function func(){} console.log(func()) // undefined
-
-
-
函数参数未定义
-
函数的参数没有传入:当我们的实参没有传入,却获取形参的时候
-
function func(a,b){ console.log(a,b) } func() // undefined undefined
-
-
-
void() 表达式 (了解即可)
-
console.log(void 1)// undefined
-
-