Оператор in в JavaScript проверяет, существует ли указанное свойство в объекте. Он возвращает true, если свойство найдено — либо непосредственно в объекте, либо в его цепочке прототипов.
Для обычных объектов оператор in проверяет по названию свойства (как строка):
const obj = { name: "Alice", age: 30 };
"name" in obj; // true
"email" in obj; // false
true для унаследованных свойств из цепочки прототипов"toString" in obj возвращает true, хотя это свойство не определено непосредственно в objДля массивов оператор in проверяет, существует ли индекс, а не существует ли значение:
const arr = [10, 20, 30];
0 in arr; // true — индекс 0 существует
2 in arr; // true — индекс 2 существует
3 in arr; // false — индекс 3 не существует
10 in arr вернёт falsein, когда нужно проверить наличие свойства или индексаarr.includes(value)Object.hasOwn(obj, key)Оператор in возвращает true для свойств, унаследованных из цепочки прототипов, в то время как Object.hasOwn() проверяет только свойства, которые напрямую принадлежат самому объекту.
Новый — ещё не проверен сообществом
Вы