Страницы

Поиск по вопросам

понедельник, 25 ноября 2019 г.

Что значит void 0?


Иногда вижу такие ссылки

Войти


и void 0 тоже используется в библиотеке Backbone.js, например:

if (obj == null) return void 0;


Что значит void 0, и для чего оно нужно?
    


Ответы

Ответ 1



Оператор void[MDN][спецификация] вычисляет переданное выражение и всегда возвращает undefined. Примеры: void 0 // возвращает undefined void(0) // это тоже возвращает undefined void "привет" // тоже возвращает undefined void new Date() // всегда возвращает undefined Зачем этот оператор вообще нужен? Если void 0 всегда возвращает undefined, можно просто использовать undefined, разве нет? Можно. На самом деле, void не очень полезный оператор, и я его использую очень редко. Но он пригодится в некоторых ситуациях: В старых браузерах (я не уверен в каких именно. По-моему, в IE 6 и ниже и в Netscape) была возможность изменить значение undefined: undefined = 5; // в старых браузерах изменит значение undefined, // в новых ничего не делает 5 === undefined; // true в старых браузерах, false в новых Не всегда известно, что undefined значит undefined. Поэтому некоторые библиотек используют void 0. Даже в новых браузерах undefined - допустимое имя переменной внутри функции: function f() { var undefined = 5; return undefined; } f(); // возвращает 5 Но если вы пишете такой код, это ваша вина. Если хотите сохранить свою энергию: void 0 на три символа короче undefined. Хот 0[0] еще короче. Ссылка, начинающаяся с javascript:, обычно отправляет пользователя на страницу текстом, который код возвращает. Например: Нажимай СЮДА! Но если вы хотите, чтобы ссылка никуда не отправляла пользователя, надо как-то вернут undefined. Традиционно люди используют void(0), но undefined и другие варианты тоже работают. Войти Почему именно void 0? Это только традиция; void 0 - простой и короткий код. Другие варианты, такие ка void 9 и void "привет", тоже работают.

Комментариев нет:

Отправить комментарий