null 和undefined的区别

文章目录

    • 1、 定义
    • 2、null和undefined的区别
      • 1.首先是数据类型不一样
      • 2.null和undefined 两者相等,但是当两者做全等比较时,两者又不等。(因为它们的数据类型不一样)
      • 3.转化成数字的值不同
      • 4.null代表"空",代表空指针;undefined是定义了没有赋值
    • 3、null和undefined的运用场景
      • undefined
        • 1、变量被声明时,但没有赋值时,就等于undefined
        • 2、调用函数时,应该提供的参数没有提供,该参数等于undefined
        • 3、对象没有赋值的属性,该属性的值为undefined
        • 4、函数没有返回值时,默认返回undefined
      • null
        • 1、作为函数的参数,表示该函数的参数不是对象(不想传递参数)
        • 2、作为对象原型链的终点
        • 3、如果定义的变量准备在将来用于保存对象,此时可以将该变量初始化为null

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

你可能感兴趣的:(js)