JavaScript 'undefined' vs ' void 0`



В чем именно разница между undefined и void 0?



Что предпочтительнее и почему?

526   4  

4 ответов:

Разница в том, что некоторые браузеры позволяют перезаписать значение undefined. Однако void(anything) всегда возвращает вещественное undefined.

undefined = 1;
console.log(!!undefined); //true
console.log(!!void(0)); //false

undefined имеет нормальную переменную семантику, которую даже строгий режим не может исправить и требует поиска во время выполнения. Она может быть перегружена как и любая другая переменная, глобальная переменная по умолчанию undefined не доступна только для чтения в ES3.

void 0 эффективно является пуленепробиваемой константой времени компиляции для undefined без требований поиска. Это например, написать null или true вместо поиска значения переменной. Он работает из коробки без каких-либо аргументов безопасности и короче, чтобы написать. Это лучше во всех отношениях.

JS очень свободен в синтаксисе, скобки здесь необязательны, void 0 и void(0) эквивалентны.

Для второго вопроса вам нужно использовать undefined непосредственно, избегая ненужного вычисления операнда, чтобы получить то же самое значение undefined.

Дополнительная информация в справочнике: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/void

Используйте undefined. Он более известен, чем void(0).

Comments

    Ничего не найдено.