“Эй, погоди! Похоже, мы тут немного путаемся. Ты используешь “Admob” в качестве типа, но на самом деле это значение, друг мой. Ты хотел вместо этого использовать “typeof Admob” ? Давайте углубимся в это и исправим ситуацию!”
Хорошо, давайте разберемся и рассмотрим различные методы, чтобы прояснить различие между значением и типом в JavaScript. Пристегнитесь, ребята!
Метод 1: оператор typeof
Оператор typeof — это ваш универсальный инструмент для определения типа значения в JavaScript. Это похоже на детектива, выискивающего подсказки о природе переменной. Посмотрите этот фрагмент кода:
const admob = 42;
console.log(typeof admob); // Output: "number"
Метод 2: оператор экземпляра
Оператор экземпляра помогает определить, принадлежит ли объект к определенному классу или типу. Взгляните на этот пример:
class Admob {
// Class implementation here
}
const ad = new Admob();
console.log(ad instanceof Admob); // Output: true
Метод 3: Object.prototype.toString()
Этот метод помогает получить более подробное описание типа объекта. Это похоже на получение удостоверения личности для вашей переменной. Вот как это работает:
const admob = { name: 'Admob' };
console.log(Object.prototype.toString.call(admob)); // Output: "[object Object]"
Метод 4: проверка определенных значений
Иногда вам может потребоваться определить определенные значения, сравнив их с известными типами. Вот пример:
const admob = 'OpenAI';
if (admob === 'Admob') {
console.log('It is Admob!');
} else {
console.log('It is not Admob!');
}
Метод 5: утиная типизация
В JavaScript мы часто фокусируемся на поведении объекта, а не на его фактическом типе. Эта концепция известна как «утиная типизация». Это все равно, что сказать: «Если что-то выглядит как утка и крякает как утка, значит, это и есть утка». Посмотрите этот фрагмент кода:
function quack(duck) {
if (duck && typeof duck.quack === 'function') {
duck.quack();
} else {
console.log("This ain't no duck!");
}
}
const admob = {
quack: function() {
console.log('Quack, quack!');
}
};
quack(admob); // Output: "Quack, quack!"