--- title: Оператор void slug: Web/JavaScript/Reference/Operators/void tags: - JavaScript - Оператор translation_of: Web/JavaScript/Reference/Operators/void ---
Оператор void обчислює наданий вираз та повертає {{jsxref("undefined")}}.
void вираз
Цей оператор дозволяє обчислення виразів, які повертають значення, у місцях, де очікується вираз, що обчислюється як {{jsxref("undefined")}}.
Оператор void часто використовують лише для того, щоб отримати просту величину undefined, зазвичай, використанням "void(0)" (що є еквівалентним "void 0"). У таких випадках можна замість цього скористатись глобальною змінною {{jsxref("undefined")}} (за умови, що їй не було присвоєне нове значення).
Зауважте, що необхідно враховувати пріоритет оператора void, і що круглі дужки можуть допомогти прояснити обчислення виразу, розташованого після оператора void:
void 2 == '2'; // (void 2) == '2', вертає false void (2 == '2'); // void (2 == '2'), вертає undefined
При використанні {{Glossary("IIFE", "негайно виконуваного фукнціонального виразу")}} void може використовуватись, щоб змусити ключове слово function сприйматись як вираз, а не як оголошення.
void function iife() {
var bar = function () {};
var baz = function () {};
var foo = function () {
bar();
baz();
};
var biz = function () {};
foo();
biz();
}();
Коли переглядач переходить по javascript: URI, він обчислює код у URI, після чого замінює вміст сторінки поверненим значенням, якщо тільки повернене значення не є {{jsxref("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, не змінить поведінку цього коду.
| Специфікація | Статус | Коментар |
|---|---|---|
| {{SpecName('ESDraft', '#sec-void-operator', 'The void Operator')}} | {{Spec2('ESDraft')}} | |
| {{SpecName('ES6', '#sec-void-operator', 'The void Operator')}} | {{Spec2('ES6')}} | |
| {{SpecName('ES5.1', '#sec-11.4.2', 'The void Operator')}} | {{Spec2('ES5.1')}} | |
| {{SpecName('ES3', '#sec-11.4.2', 'The void Operator')}} | {{Spec2('ES3')}} | |
| {{SpecName('ES1', '#sec-11.4.2', 'The void Operator')}} | {{Spec2('ES1')}} | Початкове визначення. Реалізоване у JavaScript 1.1 |
{{Compat("javascript.operators.void")}}