Spec-Zone.ru › JavaScript

TypeError: нельзя использовать оператор 'in' для поиска 'x' в 'y'

JavaScript-исключение "правая часть 'in' должна быть объектом" возникает, когда in operator использовался для поиска в строках, числах или других примитивных типах. Он может использоваться только для проверки наличия свойства в объекте.

Сообщение

TypeError: Cannot use 'in' operator to search for 'x' in 'y' (V8-based & Firefox)
TypeError: right-hand side of 'in' should be an object, got null (Firefox)
TypeError: "y" is not an Object. (evaluating '"x" in "y"') (Safari)

Тип ошибки

TypeError

Что пошло не так?

in operator может использоваться только для проверки наличия свойства в объекте. Вы не можете искать в строках, числах или других примитивных типах.

Примеры

Поиск в строках

В отличие от других языков программирования (например, Python), вы не можете искать в строках с помощью in operator.

"Hello" in "Hello World";
// TypeError: cannot use 'in' operator to search for 'Hello' in 'Hello World'

Вместо этого вам нужно будет использовать String.prototype.includes(), например.

"Hello World".includes("Hello");
// true

Операнд не может быть null или undefined

Убедитесь, что объект, который вы инспектируете, на самом деле не является null или undefined.

const foo = null;
"bar" in foo;
// TypeError: cannot use 'in' operator to search for 'bar' in 'foo' (Chrome)
// TypeError: right-hand side of 'in' should be an object, got null (Firefox)

in operator всегда ожидает объект.

const foo = { baz: "bar" };
"bar" in foo; // false

"PI" in Math; // true
"pi" in Math; // false

Поиск в массивах

Будьте осторожны при использовании in operator для поиска в Array объектах. in operator проверяет номер индекса, а не значение по этому индексу.

const trees = ["redwood", "bay", "cedar", "oak", "maple"];
3 in trees; // true
"oak" in trees; // false

См. также

  • in

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/in_operator_no_object

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API