JSLint жалуется на переопределение undefined

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" ; я просто хотел посмотрим, почему этот метод не работает.

5
задан kevinji 17 November 2011 в 23:07
поделиться