null和undefined

nullundefinde都属于基本类型,它们没有原型,不是对象,但是typeof null返回的却是object,这是javascript的bug,但是最新的EScript语言为了兼容型,没对这一bug做修复。
所以使用typeof判断是否为null不准确,可以使用Object.prototype.toString.call()打印具体类型。
Object.prototype.toString.call(null) //"[object Null]" Object.prototype.toString.call(undefined) //"[object Undefined]"

null的使用场景:

null通常用作一个空引用或空对象,比如:

1.DOM上读取一个不存在的元素会返回null
2.如果需要给一个变量或属性指定不变的值、将它传递给一个函数,或者从一个函数返回null,null都是最好的选择。
3.javascript使用undefined,而程序员应该使用null
4.通过分配null,有效清除引用,并假设对象没有应用其它代码,指定垃圾收集,确保内存被回收。
5.null也是一个关键字。

undefined的使用场景:

1.只声明不初始化的变量都会返回一个undefined

3.函数没有指定返回值会返回一个undefined

4.void操作符会返回undefined。 像Underscore的库使用它作为一个防御式的类型检查,因为它是不可变的,可以在任何上下文依赖返回undefined:
var test= void 0 //undefined test //undefined
5.undefined是一个预定义的全局变量初始化为undefined值。
'undefined' in window; // true

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Null类型 Null类型是第二个只有一个值的数据类型,这个特殊的值是null。从逻辑角度来看,null值表示一个...
    gtt21阅读 425评论 0 1
  • Null类型 Null类型是第二个只有一个值的数据类型,这个特殊的值是null。从逻辑角度来看,null值表示一个...
    前端精髓阅读 623评论 0 4
  • 工作之余练书法,手臂发麻眼也花。 天道酬勤天不负,师法传统学名家。
    铁筆阅读 218评论 0 1
  • 9月12日,名叫网红“李雨桐Luyee”自曝是薛之谦的前女友,并在微博上指责曾遭其骗财骗感情,还指出曾与薛之谦一起...
    落阵雨阅读 306评论 0 0
  • 说到这个词,觉得挺心寒的,每个人都有过去,怕这个过去被打破,而从此变成了另外一个人!谁看到美好事物都很想拥有,特别...
    9yue唐古星阅读 288评论 0 0