返回

把握JS数据类型判断,自信征战面试

前端

在JavaScript的王国里,数据类型就好比皇冠上的宝石,决定着代码的执行方式。掌握JavaScript的数据类型判断,犹如手握一把利刃,在面试中披荆斩棘,所向披靡。本文将带你深入探究JS数据类型判断的原理,助你轻松驾驭面试官的刁钻提问。

数据类型:JavaScript世界的基石

在JavaScript中,数据类型决定着变量所存储数据的种类。常见的类型包括:

  • 原始类型 :字符串、数字、布尔值、null和undefined
  • 对象类型 :数组、对象、日期、函数

typeof:便捷的数据类型探测器

typeof操作符是JavaScript中判断数据类型最简单的方法。它返回一个字符串,表示变量存储的数据类型:

console.log(typeof "Hello"); // "string"
console.log(typeof 123); // "number"
console.log(typeof true); // "boolean"
console.log(typeof null); // "object"(这是个历史遗留问题)
console.log(typeof undefined); // "undefined"

Object.prototype.toString:深入探究数据类型

Object.prototype.toString方法提供了另一种判断数据类型的方法。它返回一个字符串,表示变量的内部[[Class]]属性:

console.log(Object.prototype.toString.call("Hello")); // "[object String]"
console.log(Object.prototype.toString.call(123)); // "[object Number]"
console.log(Object.prototype.toString.call(true)); // "[object Boolean]"
console.log(Object.prototype.toString.call(null)); // "[object Null]"
console.log(Object.prototype.toString.call(undefined)); // "[object Undefined]"

需要注意的是,对于对象类型,Object.prototype.toString方法返回的是构造函数的名称,而不是"object":

console.log(Object.prototype.toString.call([])); // "[object Array]"
console.log(Object.prototype.toString.call({})); // "[object Object]"

instanceof:对象类型专属的利器

instanceof操作符专门用于判断对象类型。它检查变量是否属于某个构造函数的实例:

console.log([] instanceof Array); // true
console.log({} instanceof Object); // true
console.log(123 instanceof Number); // false

实战演练:面试官的刁钻提问

现在,让我们用我们掌握的知识来应对面试官的刁钻提问:

面试官:如何判断一个变量是否是数组?

应答: 可以使用typeof操作符或者instanceof操作符:

if (typeof variable === "object" && variable instanceof Array) {
  // 变量是数组
}

面试官:如何区分null和undefined?

应答: 可以使用typeof操作符:

if (variable === null) {
  // 变量是null
} else if (variable === undefined) {
  // 变量是undefined
}

结语

掌握JavaScript的数据类型判断,犹如在面试中手握一把利刃。typeof、Object.prototype.toString和instanceof操作符是你忠实的盟友,助你轻松应对面试官的刁钻提问。牢记这些原理,自信征战面试,斩获心仪的offer!