undefined与null的区别
表示变量没有被声明或者已经声明但未赋值。换句话说,如果我们试图访问一个不存在的变量或对象属性,那么默认返回的就是
undefined
表示一个变量被刻意设定为没有任何值或者说空值。换言之,当程序员想明确设定一个变量没有值,可以将其设定为
null
undefined
,而null
则需要程序员显式设定。JavaScript从不会自动将变量设为null
undefined
并非有效的值,但是null
当我们检查这两个值的类型时,
undefined
的类型(typeof)是undefined
,而null
的类型(typeof)却是object
。虽然这看起来有些违反直觉,但这是由于历史原因导致的 ,至今还未被修复。
undefined
和null
undefined
或null
转成布尔型时,它们都返回false
。因此我们称它们为值。
undefined
或null
==
进行比较时,Javascript会认为undefined
和null
相等。这是因为双等号在比较时会进行类型转换。然而,如果我们采用三等号===
进行严格比较(不进行类型转换),那么undefined
和null
总结以上的信息,我们就能更好地理解'undefined'和'null'在JavaScript中的应用,同时也能更准确地处理出现这两种类型的情况。