Оператор void
вычисляет выражение и возвращает undefined.
Этот оператор используется для запуска кода, который влечет за собой эффекты, не связанные с возвращаемым значением.
Иногда вызов void(0)
используют для получения undefined
. В этом случае можно вместо void(0) использовать просто undefined
.
При использовании протокола "javascript:(URI)", браузер выполняет код URI
и заменяет содержимое документ на возвращенное значение, если оно не undefined
.
Поэтому javascript-вызовы заворачивают в void
. Особенно часто это делают в букмарклетах.
<a href="javascript:void(document.body.style.backgroundColor='green');">
Нажмите и фон станет зеленым
</a>
Кстати, использование протокола javascript:
не рекомендуется, так как в современном javascript обычно есть лучшие альтернативы, например события.
Приведенный пример использования совершенно невнятный!
"Браузер выполняет код [javascript:..] и заменяет содержимое полученным значением, если оно НЕ(!) undefined....ПОЭТОМУ(?!) javascript вызовы заворачивают в void. Почему "поэтому"? Ведь сначала сказано, что браузер использует как раз-таки определенное в ходе вычислений значение выражения.
Вот именно для того, чтобы браузер содержимое документа НЕ заменял на результат вычисления выражения, и используется void.Хотя, я согласен - написано не совсем понятно.
Очень помогли !
Спасибо за статью!
Короче —
или
Иногда вызов void(0) используют для получения undefined. В этом случае можно вместо void(0) использовать просто undefined.
Нельзя, потомучто undefined не является кейвордом и его можно переопределить.
Как ты его переопределишь?
Элементарно, например, вот так