Возьмите этот фрагмент,
var a = {
}
if(typeof a.c === 'undefined'){
console.log('inside if');
}
if(a.c === undefined){
console.log('inside if');
}
Оба if
приводят к true
. Есть ли разница в обоих утверждениях, характерных для некоторых браузеров?
Кроме того, в моем последнем проекте я уже много раз использовал typeof a.c == 'undefined'
для проверки значений в json
данных.
Теперь я знаю, что это нехорошо, так как некоторое значение может быть undefined
тоже, поэтому моя логика потерпит неудачу.
Я должен был использовать hasOwnProperty
.
Но я уверен, что никакое значение не будет undefined
, я могу использовать typeof a.c == 'undefined'
вместо hasOwnProperty
или мне нужно изменить все мои typeof
на hasOwnProperty