🌺
摘要
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
作者:徐徐转载请注明出处