Зачем использовать конструкцию in здесь:
[].constructor in [Array]
возвращает false, хотя
[].constructor == Array
возвращает true



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Оператор in проверяет, существует ли ключ, а не значение:
it returns true if the specified property is in the specified object or its prototype chain. MDN
'key' in ['key']
Вернет false, при этом:
0 in ['key']
вернет true
Чтобы проверить, существует ли значение, вы можете использовать метод includes():
[Array].includes([].constructor)
вернет true
Оператор в возвращает истину, если указанное свойство находится в указанном объекте или его цепочке прототипов. не значение, он проверяет, есть ли у свойства, например, в вашем массиве свойства, которые являются индексами (числами), начинающимися с 0 поэтому, если мы вернемся к вашему примеру
если мы проверим, что массив имеет опору 0, он вернет истину, если мы проверим, что у него есть опора 1, она вернет ложь, потому что в массиве есть только один элемент с индексом 0
let arr = [Array]
console.info(0 in arr ) ; // true
console.info(1 in arr) ; // false давайте посмотрим на другой пример
let obj = {
constructorArray : Array
}
console.info('constructorArray' in obj); // true
console.info(obj.constructorArray === [].constructor) ; // true
console.info(Array in obj) ; // false учить больше
Вы нашли решение, которое искали, или ждете других ответов?