undefined
технически может быть переопределено, поэтому это не зарезервированное слово. В результате я обычно пишу код в анонимной функции, которая заставляет undefined
быть неопределенной переменной, например:
(function (undefined) {
"use strict";
var o = {
test: "testvalue"
};
if (o.test === undefined) {
// Do stuff here
} else {
// Do other stuff there
}
}());
Однако JSLint упоминает следующую ошибку:
Problem at line 1 character 15: Expected an identifier and instead saw 'undefined' (a reserved word).
Почему JSLint жалуется на то, что undefined
является зарезервированным словом, когда код может произвольно переопределить переменную? Я знаю, что вы можете использовать typeof x === "undefined"
; Я просто хотел понять, почему этот метод не работает.