为什么有的编程规范要求用 void 0 代替 undefined?

因为 JavaScript 的代码 undefined 是一个变量,而并非是一个关键字(保留字),这是 JavaScript 语言公认的设计失误之一,所以,我们为了避免无意中被篡改,我建议使用 void 0 来获取 undefined 值。

为什么不需要使用void 0?

  • undefined在 ES5 和更新的环境中不能更改全局属性
  • 使用ESLint 规则 no-undefinedundefined可以禁止具有名称的局部变量
  • 创建生产包时,缩小器可以替换undefined为void 0

image.png

参考:https://p42.ai/blog/2022-05-10/you-dont-need-void-0