Как понять "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
, это очень странно. Как это понять?
Ответы
Ответ 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
.
Так как это оператор, скобки не нужны.