认识null和undefined

undefined的来源

    1、null在Java中被当成一个对象。但是JavaScript的数据类型分为原始类型和引用类型,设计者觉得“无”最好表示不为对象    

    2、JavaScript的最初版本没有包括错误处理机制,发生数据类型不匹配时,往往会自动转换类型或者默默地失败,设计着觉得,如果null自动转成0后,不容易定位错误。

两者区别与联系

null和undefined都表示“值的空缺”,你可以任务undefined是表示系统级的、出乎意料的或类似错误的值的空缺, 而null是程序级的、正常的或在意料之中的值的空缺  (来自JavaScript权威指南)

undefined 表示访问一个未初始化的变量返回的值。null值表示一个空对象的指针,这也是使用typeof操作符检测null会返回“object”的原因。

如果定义的变量准备将来用户保存对象,那么最好将该变量初始化为null而不是其他值。

实际上,undefined值是派生自null值的,因此ECMA-262规定对他们的相等的测试要返回true。

注:1、无论什么情况下,都没有必要把一个变量的值显示的设置为undefined

        2、想要明确声明的变量是对象类型,就应该显示的设置为null

好处:不仅可以体现null作为空对象指针的惯例,而且也有助于进一步区分null和undefined

应用场景

null表示“没有对象”,即该处不应该有值。典型用法为:

1、作为函数的参数,表示该函数的参数不是对象

2、作为对象原型链的终点

3、在JS的DOM元素获取中,如果没有获取到指定的元素对象,一般返回null


undefined表示“缺少值”,就是此处应该有一个值,但是没有定义,典型用法为:

1、变量被声明,但没有赋值时,就等于undefined

2、调用函数时,应该提供的参数没有提供,就等于undefined

3、对象没有赋值的属性,该属性的值为undefined

4、函数没有返回值时,默认返回undefined


判断undefined和null

判断undefined

判断null


你可能感兴趣的:(认识null和undefined)