Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
16 Мар 2024
2 мин
328

Получение имени типа объекта в JavaScript

Часто в разработке на JavaScript возникает потребность узнать, какого типа объект мы имеем. В языке Java для этого существует метод class.getName(), который возвращает

Часто в разработке на JavaScript возникает потребность узнать, какого типа объект мы имеем. В языке Java для этого существует метод class.getName(), который возвращает имя класса объекта. Однако в JavaScript такого метода нет. Давайте разберемся, как можно получить имя типа объекта в JavaScript.

В JavaScript есть встроенный оператор typeof, который возвращает строку, указывающую тип операнда. Например:

console.log(typeof "John"); // "string"
console.log(typeof 3.14); // "number"
console.log(typeof {}); // "object"
console.log(typeof null); // "object"
console.log(typeof function() {}); // "function"

Однако, typeof не всегда ведет себя ожидаемо. Например, typeof null возвращает "object", хотя null не является объектом. Кроме того, typeof не может различать разные виды объектов. Для всех объектов, массивов, дат и неопределенных значений typeof вернет "object".

Для того чтобы получить более точную информацию о типе объекта, можно использовать метод Object.prototype.toString.call(). Этот метод возвращает строку, которая представляет собой объект и его тип. Например:

console.log(Object.prototype.toString.call("John")); // "[object String]"
console.log(Object.prototype.toString.call(3.14)); // "[object Number]"
console.log(Object.prototype.toString.call({})); // "[object Object]"
console.log(Object.prototype.toString.call([])); // "[object Array]"
console.log(Object.prototype.toString.call(null)); // "[object Null]"
console.log(Object.prototype.toString.call(function() {})); // "[object Function]"

Таким образом, если вам нужно получить имя типа объекта в JavaScript, вы можете использовать typeof для базовых типов, и Object.prototype.toString.call() для более сложных типов.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий