当前位置: 首页> 汽车> 报价 > 不要直接使用unidefined 而使用void 0

不要直接使用unidefined 而使用void 0

时间:2025/7/13 18:29:09来源:https://blog.csdn.net/weixin_44368963/article/details/139767845 浏览次数: 0次

为什么不要使用unidefined 而使用void 0?

在JavaScript中,undefined 和 void 0 都可以用来表示未定义的值,但它们在使用和上下文中有一些微妙的差异,这也是为什么有时可能会推荐使用 void 0 而不是直接使用 undefined。

全局污染:

在早期的JavaScript环境中,undefined 实际上是一个可以被重新赋值的变量。这意味着,如果某个地方的代码不小心(或故意)重新定义了 undefined,那么它就不再表示未定义的值了。这可能会导致意外的行为。而 void 0 则是一个表达式,它总是返回 undefined,并且不会被任何代码所改变。

示例如下

我们可以发现 在js中undefined是可以被定义成变量的

在这里插入图片描述

而向我们熟知的关键字 null 之类的是不可以被定义为变量的,这也与我们本来的理解一至,关键字是不能被用作标识符
但undefined可以 多有意思的js

在这里插入图片描述
之所以undefined能被用作标识符,是因为undefined是window的属性
在window中有一个属性叫undefined其值为undefined

证明如下
在这里插入图片描述
当然这样看不明显

我们可以用 操作符 in

在这里插入图片描述
这样可以很清楚的看出 undefined 是 window的一个属性

那既然undefined是window的一个属性,那我们是不是可以直接通过window.undefined来修改undefined的值呢?

答案是不能的,因为undefined属性是只读的

如下图,我尝试修改window.undefined的值,但是没有成功依然是undefined

在这里插入图片描述
window.undefined 是不可更改的,但是 自己定义一个叫undefined 变量确是可更改的
如下
在这里插入图片描述
输出如下

可以看到,现在undefined的值是1了

在这里插入图片描述

应该永远使用void 0 来替代undefined

而 void 0 是一个表达式,它总是返回 undefined,无论全局变量 undefined 的值如何被改变。因此,void 0 可以作为一个安全的、始终如一的 undefined 的替代。

关键字:不要直接使用unidefined 而使用void 0

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: