1.undefined的场景
// 场景一
let a
console.log(a)//undefined
//场景二
let obj = {}
console.log(obj.a)//undefined
// 场景三
function fn() {
}
console.log(fn())//undefined
// 场景四
function fn2(num1, num2) {
console.log(num2)
}
fn2(0)//undefined
2.null的场景
// 场景一
let obj2 = null
function fn3() {
return {}
}
obj2 = fn3()
// 场景二
document.querySelector('#id')//nul
// 场景三 正则表达式
'hello'.match(/b/)//null
3.相似点
1.一个对象字面量的值
2.!undefined !null = true
3.都会抛出异常
let a1
console.log(a1.name)
let b1=null
console.log(b1.name)
4.不全等
undefined ==null //true
undefined ===null //false
4.不同点
-
undefined是一个全局变量 null是一个关键字
window.undefined//undefined -
类型不同
typeof undefined//undefined typeof null//'object' -
Object.prototype.toString.call(undefined)//'[object Undefined]' Object.prototype.toString.call(null)//'[object Null]' -
undefined + 'hello'//'undefinedhello' null + 'hello'//'nullhello' -
参与运算不同
null + 1 //1 undefined + 1 //NaN