这两种类型近乎相等,都表示空值,在实际的操作中console.log(null == undefined)会输出true。但是它们之间有些的差别的,主要从定义、字面意思、使用情况等考虑。
从最初的的区分方式:null表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaNundefined:表示"没有值",也就是说此处应该有一个值的,但还没有定义;null:"没有对象",即该处不应该有值;undefined会出现在哪,即应用:当申明一个变量,但并未赋初始值时,这个变量的值就是undefined。调用函数时,应该提供的参数并未提供,则该参数默认为undefined访问对象没有赋值的属性,该属性默认为undefined。函数没有定义return返回值时,默认返回undefined。当return表达式没有显式的返回任何内容时,默认返回undefinednull会出现在哪?定义一个变量,当我们希望它在将来保存对象时,最好将变量的初始值设为null。对象原型链的终点是null对于函数的参数,为了表示该函数的参数不是对象,会使用null。