Оператор void
Оператор void
обчислює наданий вираз
та повертає undefined
.
Синтаксис
void вираз
Опис
Цей оператор дозволяє обчислення виразів, які повертають значення, у місцях, де очікується вираз, що обчислюється як undefined
.
Оператор void
часто використовують лише для того, щоб отримати просту величину undefined
, зазвичай, використанням "void(0)
" (що є еквівалентним "void 0
"). У таких випадках можна замість цього скористатись глобальною змінною undefined
(за умови, що їй не було присвоєне нове значення).
Зауважте, що необхідно враховувати пріоритет оператора void
, і що круглі дужки можуть допомогти прояснити обчислення виразу, розташованого після оператора void
:
void 2 == '2'; // (void 2) == '2', вертає false
void (2 == '2'); // void (2 == '2'), вертає undefined
Негайно виконувані функціональні вирази
При використанні негайно виконуваного фукнціонального виразу void
може використовуватись, щоб змусити ключове слово function
сприйматись як вираз, а не як оголошення.
void function iife() {
var bar = function () {};
var baz = function () {};
var foo = function () {
bar();
baz();
};
var biz = function () {};
foo();
biz();
}();
URI у JavaScript
Коли переглядач переходить по javascript:
URI, він обчислює код у URI, після чого замінює вміст сторінки поверненим значенням, якщо тільки повернене значення не є undefined
. Оператор void
можна використати, щоб повернути undefined
. Наприклад:
<a href="javascript:void(0);">
Натисніть сюди, щоб не робити нічого
</a>
<a href="javascript:void(document.body.style.backgroundColor='green');">
Натисніть сюди, щоб зробити фон зеленим
</a>
Заувага: використання псевдопротоколу javascript:
не заохочується на користь інших альтернатив, таких як ненав'язливі обробники подій.
Стрілкові функції без витоків
Стрілкові функції запроваджують скорочений бездужковий синтаксис, який повертає вираз. Це може спричинити ненавмисні побічні ефекти, повертаючи результат функціонального виклику, який раніше не повертав нічого. Щоб убезпечитись у випадках, коли результат функції не передбачається використовувати, його можна передати у оператор void, щоб гарантувати, що (наприклад) зміна API не спричинить зміну поведінки стрілкових функцій.
button.onclick = () => void doSomething();
Це гарантує, що повернене значення doSomething
, змінюючись з undefined
на true
, не змінить поведінку цього коду.
Специфікації
Специфікація | Статус | Коментар |
---|---|---|
ECMAScript (ECMA-262) The definition of 'The void Operator' in that specification. |
Living Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'The void Operator' in that specification. |
Standard | |
ECMAScript 5.1 (ECMA-262) The definition of 'The void Operator' in that specification. |
Standard | |
ECMAScript 3rd Edition (ECMA-262) The definition of 'The void Operator' in that specification. |
Standard | |
ECMAScript 1st Edition (ECMA-262) The definition of 'The void Operator' in that specification. |
Standard | Початкове визначення. Реалізоване у JavaScript 1.1 |
Сумісність з веб-переглядачами
BCD tables only load in the browser