null==undefined //true
undefined类型来源于null,null和undefined都是js中只有一个值的数据类型 特殊值分别是null和undefined
但不同的是 ,
1.null
null 表示空对象指针,typeof是object 而且其他语言都有null ,那什么情况会输出null呢
所以只有将变量定义为null时输出null 其他返回虽然是空对象 但可能会返回undefined或者object
所以判断XX值是否为空可以使用 XX==undefined XX==null(但如果xx是undefined也是对 用===)
2.undefined
而undefined是js才有的,申明一个未初始化的变量,得到的是undefined,typeof出来是undefined,undefined的引入是为了区分空指针对象和未初始化的变量,是一个预定义的全局变量。没有返回的函数返回undefined,没有实参的形参也是undefined 。但如果直接alert(age)(age没有申明)会报错,如下:
从技术角度两种变量有本质的区别,但实际上无论是哪种变量都不可能执行真正的操作
但如果判断未申明的变量的对象输出时undefined,那未初始和未申明在typeof都是输出undefined,那如何来判断这个变量是属于未申明还是未初始化呢?
所以需要我们显式的初始化变量如var msg = 0;