Часто в разработке на 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()
для более сложных типов.
Добавить комментарий