JavaScript数据类型判断全攻略:从入门到精通,一篇文章搞定!

161 阅读2分钟

1. 基本数据类型与引用数据类型

JavaScript的数据类型主要分为两大类:基本数据类型引用数据类型

  • 基本数据类型StringNumberBooleanNullUndefinedSymbolBigInt
  • 引用数据类型ObjectArrayFunctionDateRegExp

2. 使用typeof判断数据类型

typeof是最常用的判断数据类型的方法之一。它可以返回一个字符串,表示变量的数据类型。

console.log(typeof "Hello"); // "string"
console.log(typeof 42); // "number"
console.log(typeof true); // "boolean"
console.log(typeof undefined); // "undefined"
console.log(typeof null); // "object" (注意:这是一个历史遗留问题)
console.log(typeof Symbol("id")); // "symbol"
console.log(typeof 123n); // "bigint"
console.log(typeof {}); // "object"
console.log(typeof []); // "object"
console.log(typeof function() {}); // "function"

注意typeof null返回"object",这是一个历史遗留问题,需要特别注意。

3. 使用instanceof判断引用数据类型

instanceof用于判断一个对象是否属于某个构造函数的实例。它主要用于判断引用数据类型。

console.log([] instanceof Array); // true
console.log({} instanceof Object); // true
console.log(function() {} instanceof Function); // true
console.log(new Date() instanceof Date); // true

注意instanceof不能用于判断基本数据类型。

4. 使用Object.prototype.toString判断数据类型

Object.prototype.toString是判断数据类型的最准确方法之一。它返回一个表示对象类型的字符串。

console.log(Object.prototype.toString.call("Hello")); // "[object String]"
console.log(Object.prototype.toString.call(42)); // "[object Number]"
console.log(Object.prototype.toString.call(true)); // "[object Boolean]"
console.log(Object.prototype.toString.call(undefined)); // "[object Undefined]"
console.log(Object.prototype.toString.call(null)); // "[object Null]"
console.log(Object.prototype.toString.call(Symbol("id"))); // "[object Symbol]"
console.log(Object.prototype.toString.call(123n)); // "[object BigInt]"
console.log(Object.prototype.toString.call({})); // "[object Object]"
console.log(Object.prototype.toString.call([])); // "[object Array]"
console.log(Object.prototype.toString.call(function() {})); // "[object Function]"

优点Object.prototype.toString可以准确判断所有数据类型,包括nullundefined

5. 使用Array.isArray判断数组

Array.isArray是专门用于判断一个变量是否为数组的方法。

console.log(Array.isArray([])); // true
console.log(Array.isArray({})); // false

优点Array.isArray是判断数组的最简单、最直接的方法。

6. 使用===判断nullundefined

由于typeof null返回"object",因此判断nullundefined时,最好使用===

console.log(null === null); // true
console.log(undefined === undefined); // true

结语

掌握JavaScript数据类型的判断方式,不仅能提高代码的健壮性,还能让你在开发过程中更加得心应手。希望这篇文章能帮助你全面理解JavaScript数据类型的判断方法,轻松应对各种开发场景。

如果你觉得这篇文章对你有帮助,欢迎点赞、转发,让更多的开发者受益!


关注我,获取更多前端开发干货!