Оператор void
Оператор void у JavaScript - доволі рідкісний, але важливий інструмент.
Він використовується для виконання виразу без повернення значення,
тобто завжди повертає undefined, незалежно від того, що робить вираз.
Синтаксис
void expressionабо
void(expression)Основна ідея
Оператор
voidвиконує вираз, але завжди повертаєundefined.
Приклад
void 123; // undefined
void 'hello'; // undefined
void (5 + 5); // undefinedНеважливо, чому дорівнює вираз праворуч, результат
voidзавждиundefined.
Приклад з функцією
function sayHi() {
console.log('Привіт!');
return 'Hi';
}
console.log(sayHi()); // "Hi"
console.log(void sayHi()); // виконується, але повертає undefinedТут sayHi() викликається,
але результат ('Hi') ігнорується, повертається undefined.
Де використовується на практиці
Щоб запобігти переходу за посиланням <a>
Іноді потрібно, щоб клік по посиланню нічого не робив:
<a href="javascript:void(0)">Натисни мене</a>Тут:
- виконується
void(0)→undefined- браузер нікуди не переходить, тому що
hrefне дає URL.
Це застаріла практика,
у сучасному коді краще використовувати href="#" з event.preventDefault().
Для IIFE (негайно викликаних функцій)
Раніше void використовували, щоб гарантувати коректне виконання IIFE:
void function() {
console.log('Спрацювало!');
}();Без
voidпарсер міг сплутати вираз з оголошенням функції. Зараз ця потреба трапляється рідко, але історичноvoidвикористовувався як «страховка».
У стрілкових функціях, щоб «нічого не повертати»
const log = msg => void console.log(msg);
log('Привіт'); // виведе в консоль, але повертає undefinedТут
voidвикористовується, щоб виконати дію без повернення значення.
У bookmarklet-ах (міні-скриптах у закладках)
Приклад «закладки зі скриптом»:
javascript:void(alert('Привіт'))Без
voidбраузер спробував би перейти на «сторінку» з результатом виразу (наприклад,undefined), аvoidзапобігає цьому.
Приклад: порівняння зі звичайним викликом
function calc() {
return 42;
}
console.log(calc()); // 42
console.log(void calc()); // undefinedФункція виконується, але
voidзмушує вираз повернутиundefined.
Підсумок
| Що робить | Виконує вираз і повертає undefined |
|---|---|
| Повертає | undefined |
| Використовується для | Ігнорування результату виразу |
| Часті сценарії | посилання javascript:void(0), IIFE, стрілкові функції без повернення |
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.