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

enru