JavaScript: что означает "void 0"?

TypeScript преобразует определенный код в это:

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

Что void 0? Это тот же трюк, что и для ссылок void(0)? Почему вместо undefined не используется?

Ответ 1

Оператор void всегда оценивает как значение undefined.

Переменная undefined, которая по умолчанию имеет значение undefined, может быть перезаписана.

Ответ 2

Оператор void вычисляет данное выражение и возвращает undefined.

Оператор void часто используется просто для получения примитивного значения undefined, обычно используя "void (0)" (что эквивалентно "void 0" ). В этих случаях вместо него может использоваться глобальная переменная undefined (при условии, что ей не присвоено значение, отличное от значения по умолчанию).