Я обнаружил, что неопределенное свойство объекта не равно undefined
.Неопределенное свойство объекта не равно `undefined`
if (obj.unexistingProperty === undefined) {
// condition is false
}
if (typeof obj.unexistingProperty === 'undefined') {
// condition is true
}
В то время как консоли отладчика (инструменты Firebug и Chrome dev) учитывают оба условия true.
Какое объяснение?
Как выяснилось, код проходил внутри
function (undefined) {
...
}
что затененной undefined
в локальной области видимости.
Не могли бы вы ошибочно переопределить 'undefined'? – icktoofay
@icktoofay это возможно? хром-консоль не позволит мне – Jorg
[Оба условия верны] (http://jsfiddle.net/j2x2q7wb/). –