Пробегался по диагонали по:
stackoverflow.com/questions/135448/how-do-i-check-... но остался неясным вопрос.
Есть несколько способов проверить, что в объекте
var item = { foo: 'bar' } нету ключа
x:
if (!item.x)
if (!item['x'])
if (typeof item['x'] === 'undefined')
if (!('x' in item)) // ok
if (!item.hasOwnProperty('x')) // ok (плюс исключает наследуемые x)
Что не так с первыми двумя? Есть браузеры, которые сгенерируют нотис, либо же это может возвратить что-то неожиданное, и что это за возможные сюрпризы?