返回

惊叹!原来typeof、instanceof这么好用?背后原理竟然如此简单!

前端

typeof

typeof是JavaScript中用于判断数据类型的运算符。它返回一个字符串,了数据的类型。typeof运算符可以用于任何数据类型,包括基本类型(字符串、数字、布尔值、undefined、null)和引用类型(对象、数组、函数)。

console.log(typeof 1); // "number"
console.log(typeof "Hello"); // "string"
console.log(typeof true); // "boolean"
console.log(typeof undefined); // "undefined"
console.log(typeof null); // "object"
console.log(typeof [1, 2, 3]); // "object"
console.log(typeof function() {}); // "function"

typeof运算符的工作原理是检查数据的内部结构。对于基本类型,typeof运算符直接返回类型名称。对于引用类型,typeof运算符返回"object"。但是,对于某些特殊的引用类型,typeof运算符会返回更具体的结果。例如,对于数组,typeof运算符返回"array",对于函数,typeof运算符返回"function"。

instanceof

instanceof运算符用于判断数据是否属于某个特定的类。instanceof运算符的左边是一个数据,右边是一个类。如果数据属于该类,则instanceof运算符返回true,否则返回false。

console.log(1 instanceof Number); // false
console.log("Hello" instanceof String); // false
console.log(true instanceof Boolean); // false
console.log(undefined instanceof Undefined); // false
console.log(null instanceof Object); // false
console.log([1, 2, 3] instanceof Array); // true
console.log(function() {} instanceof Function); // true

instanceof运算符的工作原理是检查数据的原型链。每个数据都有一个原型对象,原型对象中包含了该数据的所有属性和方法。instanceof运算符首先检查数据的原型对象是否等于给定类的原型对象。如果是,则返回true,否则返回false。

typeof和instanceof的区别

typeof和instanceof是两种不同的运算符,它们用于不同的目的。typeof运算符用于判断数据的类型,而instanceof运算符用于判断数据是否属于某个特定的类。

typeof运算符返回一个字符串,了数据的类型。instanceof运算符返回一个布尔值,表示数据是否属于某个特定的类。

typeof运算符可以用于任何数据类型,包括基本类型和引用类型。instanceof运算符只能用于引用类型。

typeof运算符的工作原理是检查数据的内部结构。instanceof运算符的工作原理是检查数据的原型链。

typeof和instanceof的冷门小知识

  • typeof运算符可以用于检查数据的内部结构。这在某些情况下非常有用,例如,当您需要确定一个对象是否包含某个属性时。
  • instanceof运算符可以用于判断数据是否属于某个特定的类。这在某些情况下也非常有用,例如,当您需要确定一个对象是否可以被某个类的方法调用时。
  • typeof运算符和instanceof运算符都可以用于判断数据的类型。但是,typeof运算符返回一个字符串,而instanceof运算符返回一个布尔值。
  • typeof运算符可以用于任何数据类型,包括基本类型和引用类型。instanceof运算符只能用于引用类型。
  • typeof运算符的工作原理是检查数据的内部结构。instanceof运算符的工作原理是检查数据的原型链。