Как проверить является ли переменная объектом js

Аватар пользователя Aleksey
Aleksey
05 апреля 2023

Еще пара способов:

  • Использование метода Object.prototype.toString():
const obj = { a: 1, b: 2 };
if (Object.prototype.toString.call(obj) === '[object Object]') {
  console.log('Это объект');
}
  • Использование оператора instanceof:
const obj = { a: 1, b: 2 };
if (obj instanceof Object) {
  console.log('Это объект');
}
4 1
Аватар пользователя Ivan Gagarinov
Ivan Gagarinov
29 июня 2022

Самый простой способ проверить, что переменная является объектом, это проверить тип переменной с помощью typeof. Для объектов эта инструкция вернёт строку 'object'.

Например:

// Создаём переменную
const user = { name: 'Ivan' };
// Проверяем является ли переменная объектом
if (typeof user === 'object') {
  console.log('is object');
}

Стоит учитывать, что для null значение будет тоже 'object', так как в системе типов JS null является объектом.

console.log(typeof null); // => object
3 1

В javascript оператор typeof возвращает 'object' не только для классических объектов {}, но и для массивов и null:

[null, [], {}].map(value => typeof value)
[ 'object', 'object', 'object' ]

Поэтому, скажем так, "классический" способ проверки, что перед вами точно объект, а не массив или null такой:

typeof x === 'object' && !Array.isArray(x) && x !== null

Во всяком случае, это код набрал наибольшее количество звезд на stackoverflow.

1 0
Познакомьтесь с основами JavaScript бесплатно