当前位置: 首页 > news >正文

不要直接使用unidefined 而使用void 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 的替代。

http://www.lryc.cn/news/377346.html

相关文章:

  • 注解详解系列 - @Scope:Bean作用域管理
  • 数学建模基础:数学建模概述
  • 人工智能大模型之开源大语言模型汇总(国内外开源项目模型汇总)
  • 数据结构之B树
  • 双色球预测算法(Java),——森林机器学习、时间序列
  • 【计算机网络篇】数据链路层(11)在数据链路层扩展以太网
  • Ubuntu20.04 使用scrapy-splash爬取动态网页
  • Function:控制继电器上下电,上电后adb登录,copy配置文件
  • 香港电讯高可用网络助力企业变革金融计算
  • LDR6020一拖二快充线:多设备充电新选择
  • 电脑ffmpeg.dll丢失原因解析,找不到ffmpeg.dll的5种解决方法
  • 手机网站制作软件是哪些
  • 【Kubernetes项目部署】k8s集群+高可用、负载均衡+防火墙
  • IPC工业电脑的现状、发展未来与破局策略
  • 深入了解Redis的TYPE命令
  • iptables(3)规则管理
  • 关于addEventListener的使用和注意项
  • 分享一下,如何搭建个人网站的步骤
  • (7)摄像机和云台
  • MicroBlaze IP核中的外设接口和缓冲器接口介绍
  • Java数据结构与算法(完全背包)
  • git merge(3个模式) 与 git rebase 图文详解区别
  • Eclipse 工作空间:深入解析与高效使用
  • Aspose将doc,ppt转成pdf
  • Flutter第十四弹 抽屉菜单效果
  • Docker Nginx
  • OpenVINO™ 2024.2 发布--推出LLM专属API !服务持续增强,提升AI生成新境界
  • 【Mybatis-Plus】根据自定义注解实现自动加解密
  • Window上ubuntu子系统编译Android
  • 【Java学习笔记】异常处理