1、 定义
== undefined原理上可以说是没有找到==
null原理上意思为空对象
2、null和undefined的区别
1.首先是数据类型不一样
用typeof进行判断,null的数据类型是object,undefined的数据类型是undefined。
console.log(typeof null) // object
console.log(typeof undefined) // undefined
2.null和undefined 两者相等,但是当两者做全等比较时,两者又不等。(因为它们的数据类型不一样)
console.log(null == undefined) // true
console.log(null === undefined) // false
3.转化成数字的值不同
console.log(Number(null)) // 0
console.log(Number(undefined)) // NaN
console.log(22+null) // 22
console.log(22+undefined) // NaN
4.null代表"空",代表空指针;undefined是定义了没有赋值
var a;
console.log(a); // undefined
var b=null;
console.log(b) // null
3、null和undefined的运用场景
undefined
1、变量被声明时,但没有赋值时,就等于undefined
var a;
console.log(a); // undefined
2、调用函数时,应该提供的参数没有提供,该参数等于undefined
function f(a,b) {
console.log(a,b)
}
f("你好"); //输出结果为:你好 undefined
3、对象没有赋值的属性,该属性的值为undefined
var obj = {
name:"lihua",
age:"18"
}
console.log(obj.sex) //输出结果为: undefined
4、函数没有返回值时,默认返回undefined
function add(a,b) {
var c = a+b;
// 没有返回时为undefined
//return c;
}
console.log(add(1,2)); //输出结果为:undefined
null
1、作为函数的参数,表示该函数的参数不是对象(不想传递参数)
function add() {
console.log(111)
}
add(null);
2、作为对象原型链的终点
3、如果定义的变量准备在将来用于保存对象,此时可以将该变量初始化为null
var a = null;
console.log(a);//null