Оператор in
Оператор 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.