Что означает `void 0`?
Проблема
Во время чтения исходного кода Backbone.js я наткнулся на следующий фрагмент:
validObj[attr] = void 0;
Вопрос заключается в следующем: что такое void 0 и какова его цель в данном контексте?
Контекст
Я заметил, что в коде используется конструкция void, но не совсем понимаю, зачем ее использовать вместо других способов присвоения значения, например, null или undefined. Есть ли какие-то преимущества или особенности использования void 0?
Ваши ответы и объяснения будут очень полезны!
1 ответ(ов)
void 0 возвращает undefined и не может быть переопределён, в то время как undefined может быть переопределён:
var undefined = "HAHA"; // Это допустимо и переопределяет значение `undefined`
В этом примере переменная undefined теперь имеет строковое значение "HAHA", что может привести к неожиданному поведению в вашем коде.
void — это оператор, который выполняет выражение и возвращает undefined. Таким образом, void 0 всегда будет возвращать undefined, вне зависимости от того, что происходит с переменной undefined в вашем коде.
Рекомендую избегать переопределения встроенных значений, таких как undefined, чтобы предотвратить путаницу и ошибки в вашем коде.
Где найти документацию по форматированию даты в JavaScript?
Как определить нажатие клавиши Esc?
Как проверить, содержит ли массив строку в TypeScript?
Ссылка и выполнение внешнего JavaScript-файла, размещенного на GitHub
Как остановить Babel от трансформации 'this' в 'undefined' и добавления "use strict"