Ответ
void 0 — это выражение в JavaScript, которое всегда вычисляется в undefined. Оператор void вычисляет переданное ему выражение и затем возвращает undefined.
Как это работает:
console.log(void 0); // undefined
console.log(void(1 + 1)); // undefined
console.log(void "hello"); // undefined
Исторический контекст и использование:
- Гарантированный
undefined: В ранних версиях JS (ES3) глобальная переменнаяundefinedбыла перезаписываемой (undefined = 123;).void 0всегда возвращал истинноеundefined, что использовалось для надежности в библиотеках. - Минимизация кода: В миньфицированном коде
void 0короче, чемundefined. - Отмена поведения по умолчанию: Чаще всего
voidиспользуется в атрибутеhrefдля отмены перехода по ссылке:<a href="javascript:void(0);" onclick="myFunction()">Click me</a>Выражение
javascript:void(0)возвращаетundefined, что предотвращает переход по ссылке.
Современная практика (ES5+):
В современных стандартах (начиная с ES5) глобальное свойство undefined является ненастраиваемым и доступным только для чтения, поэтому использование void 0 для получения undefined потеряло актуальность.
// Современный код
let value = undefined; // Безопасно
console.log(undefined); // Безопасно
// Для отмены поведения в ссылках сейчас предпочитают другие методы:
<a href="#" onclick="myFunction(); return false;">Click</a>
// Или, что лучше, использовать event.preventDefault() в обработчике.
Вывод: void 0 — это архаизм, знание о котором важно для чтения старого кода или минифицированных библиотек. В новом коде следует использовать undefined напрямую, а для управления поведением событий — современные методы JavaScript.