Оператор in - проверка наличия свойства на JavaScript
Оператор in
проверят есть ли свойство
у объекта или массива и возвращает
true
либо false
.
Синтаксис
'свойство' in объект;
Пример
Посмотрим как работает оператор in
:
let obj = {
name: 'Nick',
age: 23,
};
console.log('name' in obj); // true
console.log('age' in obj); // true
console.log('test' in obj); // false
Пример
Посмотрим как можно применить оператор
in
для проверки свойства в
массиве:
let arr = ['green', 'red', 'blue', 'pink']
console.log(0 in arr); // true, есть элемент с таким индексом
console.log(4 in arr); // false, нет элемента с таким индексом
console.log('four' in arr); // false, нужен индекс, а не значение элемента
console.log('length' in arr); // true, у массива есть такое свойство
Пример
Часто вместо in
проверяют, что свойство в
логическом контекст - true
:
let obj = {
name: 'John',
height: '177',
};
if ('name' in obj) {} // проверка в условии с in
if (obj.name) {} // но чаще пишут так
Оба варианта можно использовать. Но всегда
стоит помнить, что пустая строка, 0
,
null
, NaN
и undefined
в логическом контексте
- falsе
. Следовательно, если свойство может
иметь подобное значение - стоит использовать in
.