typeof и instanceof - это два разных оператора в JavaScript, которые используются для определения типа данных.
Оператор typeof возвращает строку, указывающую тип операнда. Он может быть использован для определения типа данных примитивных типов (например, строк, чисел, булевых значений) и определенных объектов (например, функций и массивов).
Оператор instanceof проверяет, является ли объект экземпляром определенного класса или функции-конструктора. Он может быть использован только для определения, является ли объект экземпляром класса или наследует от него.
Вот некоторые из основных различий между операторами typeof и instanceof:
typeofвозвращает строку, аinstanceofвозвращает логическое значениеtrueилиfalse.typeofможет быть использован для определения типа данных примитивных типов и определенных объектов, аinstanceofможет быть использован только для определения, является ли объект экземпляром класса или наследует от него.typeofне учитывает наследование, аinstanceofучитывает цепочку прототипного наследования.
Вот пример использования операторов typeof и instanceof:
class Person {
constructor(firstName, lastName) {
this.firstName = firstName
this.lastName = lastName
}
}
const person = new Person("John", "Doe")
console.log(typeof person) // 'object'
console.log(person instanceof Person) // true
console.log(person instanceof Object) // true
console.log(person instanceof Array) // falseВ этом примере мы создаем класс Person и объект person на его основе. Затем мы используем оператор typeof, чтобы определить тип данных объекта person. Мы также используем оператор instanceof, чтобы проверить, является ли объект person экземпляром класса Person, класса Object и класса Array.
В целом, оператор typeof и оператор instanceof имеют различные применения и могут использоваться для разных целей.