Как понять "return obj === void 0" в источнике подчеркивания? - программирование
Подтвердить что ты не робот

Как понять "return obj === void 0" в источнике подчеркивания?

Возможный дубликат:
Что означает "javascript: void (0)" ?


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

В файле http://underscorejs.org/underscore.js вы можете увидеть такой блок кода:

// Is a given variable undefined?
_.isUndefined = function(obj) {
  return obj === void 0;
};

Я не понимаю часть void 0, это очень странно. Как это понять?

4b9b3361

Ответ 1

Это консольный вывод

>typeof void 0
"undefined"
>void 0 === undefined
true
>"undefined".length
9
>"void 0".length
6

Я думаю, что они пытаются сохранить 3 байта размера файла;)

Изменить:  Этот fooobar.com/questions/1189/... ответ дает больше смысла использовать void 0, поскольку undefined является просто свойством объекта window и является изменяемым. Следовательно, void 0 - надежный способ генерации undefined в браузерах

Ответ 2

В javascript (начиная с версии 1.1) оператор void используется для вычисления выражения и возврата undefined.

См. Спецификация языка ECMAScript оператора void

So void 0 - правильный и стандартный способ создания undefined.

Так как это оператор, скобки не нужны.