Как проверить, имеет ли объект ключ в JavaScript?

Какая правильная вещь?

if (myObj['key'] == undefined)

или

if (myObj['key'] == null)

или

if (myObj['key'])

Ответ 1

Попробуйте JavaScript в.

if ('key' in myObj)

И обратный.

if (!('key' in myObj))

Будьте осторожны! Оператор in соответствует всем объектным клавишам, в том числе в цепочке прототипов объекта.

Используйте myObj.hasOwnProperty('key'), чтобы проверить собственные ключи объекта и возвратите true, если key доступен непосредственно на myObj:

myObj.hasOwnProperty('key')

Если у вас нет конкретной причины использовать оператор in, использование myObj.hasOwnProperty('key') приводит к тому, что ищет большинство кодов.

Ответ 2

Вы должны использовать hasOwnProperty. Например:

myObj.hasOwnProperty('myKey');