null跟undefined
在前面我们已经知道了null跟defined都是基础数据类型,但是这两者有什么区别我相信还有很多的同学不知道,接下来我们就浅谈一下两者的区别:
1, null 表示一个对象被定义了,但是没有赋值,值为空
undefined则表示不存在这个值
2 ,我们可以使用typeof来检测两者 typeof undefined 结果为undefined. 是一个表示"无",的原始值或者说表示缺少"值",就是此处应该有一个值,但是没有定义 ,当读取时会返回undefined;例如变量被声明了 ,但是没有赋值时此时就是undefined.
typeof null //object null是一个空对象,没有任何属性跟方法,例如作为一个函数的参数,表示该函数的参数不是对象.
注意点:在验证是null时,一定要使用三等===,不能使用双等==,双等无法分别null跟undefined.
undefined表示'缺少值',就是此处应该有一个值,但是还没有定义,undefined的典型用法:
1 变量被声明了,但没有赋值时,就等于undefined
2 调用函数时,应该提供的参数没有提供,该参数等于undefined
3 对象没有赋值的属性,该属性的值为undefined
4 函数没有返回值,默认返回undefined
null表示"没有对象",即此处不应该有值,null的典型用法:
1 作为函数的参数,表示此函数的参数不是对象
2 作为对象原型链的终点
==跟===
在上面的时候判断null跟undefined时,不能用==,要用===,那两者有什么区别了
== :称为等值符,仅判断两者的值是否相等,字符串'123'跟数值123 在==的情况下也会返回为true
===:称为等同符,当等号两边的值为相同类型的时候,直接比较等号两边的值,值相同则返回true,若等号两边的值类型不同时直接返回false,也就是===既要判断值有要判断两者的类型是否相等