Оператор 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, не змінить поведінку цього коду.

Специфікації

Сумісність з веб-переглядачами

BCD tables only load in the browser

Див. також