网站搜索

typescript - JavaScript:“void 0”是什么意思?


TypeScript 将某些代码转换为如下内容:

Animal.prototype.move = function (distanceInMeters) {
    if (distanceInMeters === void 0) { distanceInMeters = 0; }
    ...

什么是 void 0?那和在链接中使用的 void(0) 是同样的技巧吗?为什么不直接使用 undefined 呢?

答案#1

void 运算符总是返回 undefined 值。

undefined 变量,默认情况下保存未定义的值,可以被覆盖。

答案#2

void 运算符会先计算给定的表达式,然后返回 undefined。

void 操作符通常仅用于获取未定义的原始值,通常使用“void(0)”(这等同于“void 0”)。在这些情况下,可以使用全局变量 undefined(假设它没有被赋值为非默认值)来代替。