Javascript! = Не конвертировать для нуля? - PullRequest
0 голосов
/ 07 октября 2011

У меня есть следующая идиома:

if(typeof prop != 'null') {
}

У меня сложилось впечатление, что если prop равно null, оператор != преобразует нулевой объект в строку 'null' для сравнения?

В приведенном выше случае, когда prop равно нулю, выражение оценивается как true. Почему эта идиома работает для неопределенных? Не является ли undefined объектом? Так же, как ноль является объектом?

Ответы [ 3 ]

3 голосов
/ 07 октября 2011

Тип нулевого объекта по-прежнему является «объектом».Если вы предупредите (typeof prop), вы увидите, что это объект.

Вы хотите проверить нулевое значение.

if(prop == null) {
    alert(typeof prop);
}
0 голосов
/ 07 октября 2011

Полагаю, вам просто нужно удалить цитаты из 'null'

0 голосов
/ 07 октября 2011

Используйте firebug или dom insperctor, чтобы узнать, что это за тип

console.log(typeof prop);

и, может быть, вы тоже можете попробовать это

if(prop != null) {

}

или

if(typeof prop != undefined) {
}

зависит от того, что вы действительно пытаетесь сделать /

...