=== void 0 及 === undefined

参考:https://segmentfault.com/q/1010000007406985/a-1020000007437795

摘要:

事实上,void的返回值都是undefinedhttps://developer.mozilla.org...
在ES5之前,window下的undefined是可以被重写的,于是导致了某些极端情况下使用undefined会出现一定的差错。
所以,用void 0是为了防止undefined被重写而出现判断不准确的情况。

注: ES5之后的标准中,规定了全局变量下的undefined值为只读,不可改写的,但是局部变量中依然可以对之进行改写。

补充一下:非严格模式下,undefined是可以重写的,严格模式则不能重写。

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

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,195评论 0 13
  • 之前在看一个 H5 demo 的时候发现好多变量的定义都是 var aaa = void 0 因此在 Chrome...
    ddai_Q阅读 405评论 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,588评论 1 45
  • 不要错过你发现的! 万物始于春,岁岁枯尽迎新生!!
    今聿阅读 257评论 0 0
  • 近来脑子很乱很乱 常常做梦,也常常恍惚 期间,不间断的 在拖地板时 在洗衣裳时 在菜市场时 在炒菜时 在洗碗时 凌...
    魚魚故事阅读 371评论 0 1