背景

js/ts 中的void 0表示啥意思

徐徐
前端
发表于 2024-04-15 16:00:00
🌺 摘要
js/ts 中的void 0表示啥意思

js/ts 中的void 0表示啥意思

1. void 操作符的作用

void 是一个操作符,它会执行其后的表达式,但始终返回 undefined。 例如:

console.log(void 0);     // 输出 undefined
console.log(void "abc"); // 输出 undefined
console.log(void(1+2));  // 输出 undefined

2. 为什么用 void 0?

  • 历史原因​​:在 ES5 之前的 JavaScript 中,undefined 是全局对象的属性,可以被重新赋值(如 undefined = 123),导致不安全。使用 void 0 能确保始终得到真正的 undefined。
  • ​代码规范​​:现代 JavaScript(ES5+)中,undefined 是只读的,但 void 0 仍被一些开发者沿用作为习惯或代码风格。

3. TypeScript 中的 void 0

  • TypeScript 是 JavaScript 的超集,因此 void 0 的行为与 JavaScript 完全一致。
  • TypeScript 的类型系统会将 void 0 推断为 undefined 类型:
 const value: undefined = void 0; // 合法

4. 使用场景

  • ​​明确返回 undefined​​:
const func = () => void 0; // 等同于返回 undefined
  • ​默认值赋值​​:
let data = someValue ?? void 0; // 显式设置默认值为 undefined
  • ​安全比较​​(极少需要):
if (value === void 0) { ... }

5. 现代代码建议

  • ​直接使用 undefined​​:在 ES5+ 或 TypeScript 中,直接写 undefined 更直观且安全。
  • ​保留 void 0 的场景​​:仅在需要兼容极旧环境或遵循特定代码规范时使用。
文章发表于 2024-04-15 16:00:00
作者:徐徐
转载请注明出处
上一篇:echarts进度条
下一篇:迭代器