undefined和null

记录一些出现undefiend和null的情况:

undefined是全局对象的一个属性,它是全局作用域的一个变量。undefined的最初值就是原始数据类型undefined。

出现undefined的情况:
  1. 变量预解析阶段只声明未赋值,变量默认值为undefined
  2. 函数定义没有返回值,或return后面什么也没有,函数默认返回值为undefined
  3. 函数定义形参不传值,参数默认就是undefined。
  4. 访问对象的属性,对象没有该属性名,则属性值默认undefined。
  5. 严格模式(”use strict”),没有明确的主体,this指的就是undefined而不是window。

null 只是一个字面量(而不是全局对象的一个属性,undefined 是)。在 APIs 中,null 常被放在期望一个对象,但是不引用任何对象的参数位置。当检测 null 或 undefined 时,注意相等(==)与全等(===)两个操作符的区别 (前者会执行类型转换)。

出现undefined的情况:
  1. 手动设置变量的值或者对象某一个属性值为null(此时不赋值,会在后面的代码中进行赋值,相当于初始化。)
  2. 在JS的DOM元素获取中,如果没有获取到指定的元素对象,结果一般是null。
  3. Object.prototype.proto的值也是null
  4. 在正则捕获的时候,如果没有捕获到结果,默认也是null。
补充:undefiened与null的不同点
typeof null        // object (因为一些以前的原因而不是'null')
typeof undefined   // undefined
null === undefined // false
null  == undefined // true
null === null // true
null == null // true
!null //true
isNaN(1 + null) // false
isNaN(1 + undefined) // true

ps:目前只遇到这么多,遇到新的再更新,更多的欢迎评论补充~

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

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,461评论 0 4
  • 昨 日 风 轻 云 淡, 今 晨 冰 冻 深 寒。 前 朝 无 人 问 津, 古 今 叹 为 观 澜。 灵感来自一...
    红学砖家阅读 1,144评论 6 20
  • 见惯了各种英伦风、欧美风的女郎,人都审美疲劳了。想要别出心裁,不妨来点民族风情。花色多样,风格韵味各有不同,很有少...
    招远金都ddm宁新茹阅读 786评论 1 0
  • 闲来无事,小爱翻阅着图书馆中的书。 未谈恋爱时,小爱认为自己无比理性,毕竟从年纪而言,她已然可以为自己负责。 每个...
    罗嫚阅读 1,859评论 4 6
  • 露珠, 因为晶莹, 所以生命以时计! 红花, 因为美丽, 所以生命以天计! 绿叶, 因为单纯, 所以生命以月计! ...
    hsl_7cbf阅读 1,306评论 0 3