Демистификация «instanceof» и «typeof»: понимание методов проверки типов JavaScript

В JavaScript проверка типов является важным аспектом написания надежного и безошибочного кода. Двумя наиболее часто используемыми методами проверки типов являются «instanceof» и «typeof». В этой статье блога мы подробно рассмотрим эти методы, используя разговорный язык и примеры кода. К концу вы получите четкое представление о том, как использовать эти методы в своих проектах JavaScript.

Понимание «instanceof»:
Оператор «instanceof» позволяет вам проверить, принадлежит ли объект определенному классу или функции-конструктору. Он работает путем изучения цепочки прототипов объекта. Вот пример:

class Vehicle {
  // Vehicle class implementation
}
const car = new Vehicle();
console.log(car instanceof Vehicle); // Output: true
console.log(car instanceof Object); // Output: true
console.log(car instanceof Array); // Output: false

В приведенном выше примере мы создаем класс Vehicle и создаем из него экземпляр объекта с именем «car». Используя оператор «instanceof», мы можем определить, что «car» является экземпляром класса Vehicle, а также экземпляром базового класса Object. Однако, поскольку «автомобиль» не является экземпляром класса Array, результат будет ложным.

Изучение «typeof»:
Оператор «typeof» используется для определения примитивного типа значения или типа объекта. Он возвращает строку, указывающую тип. Давайте посмотрим несколько примеров:

console.log(typeof 42); // Output: "number"
console.log(typeof "Hello"); // Output: "string"
console.log(typeof true); // Output: "boolean"
console.log(typeof undefined); // Output: "undefined"
console.log(typeof [1, 2, 3]); // Output: "object"
console.log(typeof { name: "John", age: 30 }); // Output: "object"
console.log(typeof null); // Output: "object"

В приведенном выше фрагменте кода мы видим, что «typeof» возвращает ожидаемые примитивные типы для чисел, строк, логических значений и неопределенного значения. Однако он возвращает «объект» для массивов, объектов и null, что может немного сбивать с толку. Это особенность JavaScript, перенесенная из более ранних версий.

Другие методы проверки типов.
Помимо «instanceof» и «typeof», существуют и другие методы проверки типов в JavaScript, например:

  1. Array.isArray():
    Метод “Array.isArray()” проверяет, является ли значение массивом или нет.
console.log(Array.isArray([1, 2, 3])); // Output: true
console.log(Array.isArray("Hello")); // Output: false

<ол старт="2">

  • Object.prototype.toString():
    Метод toString() можно использовать для получения внутреннего свойства [[Class]] объекта, что может быть полезно при проверке типов.
  • console.log(Object.prototype.toString.call([1, 2, 3])); // Output: "[object Array]"
    console.log(Object.prototype.toString.call("Hello")); // Output: "[object String]"

    В этой статье мы рассмотрели методы «instanceof» и «typeof» для проверки типов в JavaScript. Мы также представили дополнительные методы, такие как «Array.isArray()» и «Object.prototype.toString()», которые могут быть полезны в определенных сценариях. Поняв эти методы, вы будете лучше подготовлены к решению проблем, связанных с типами, в вашем коде JavaScript.

    Разъясняя понятия «instanceof» и «typeof», мы надеемся дать вам более четкое представление о методах проверки типов в JavaScript. Включение этих методов в ваш набор инструментов для программирования поможет вам писать более надежный и безошибочный код.

    Не забудьте использовать соответствующий метод проверки типов в зависимости от ваших конкретных требований, чтобы обеспечить надежность и стабильность ваших приложений JavaScript.