首页 经验

js 判断数据类型的几种方法

时间: 2024-10-21 11:00:40

(部分内容来自网络,其真实性存疑,为了避免对您造成误导,请谨慎甄别。)

在 JavaScript 中,判断数据类型的常用方法有几种。以下是一些常见的方法:


1. typeof 运算符


最直接的方法是使用 typeof 运算符,它返回一个字符串,表示未经过严格检查的变量或表达式的数据类型。


javascript

console.log(typeof "Hello"); // "string"

console.log(typeof 42); // "number"

console.log(typeof true); // "boolean"

console.log(typeof undefined); // "undefined"

console.log(typeof Symbol()); // "symbol"

console.log(typeof null); // "object" (这实际上是 JavaScript 的一个古怪)

console.log(typeof {}); // "object"

console.log(typeof []); // "object"

console.log(typeof function(){}); // "function"


2. instanceof 运算符


instanceof 运算符用于检测对象是否是某个构造函数的实例,也可以用于判断对象的类型。


javascript

console.log([] instanceof Array); // true

console.log({} instanceof Object); // true

console.log(function(){} instanceof Function); // true


3. Object.prototype.toString


使用 Object.prototype.toString.call() 方法可以更精确地判断数据类型。这种方法可以返回更详细的数据类型的字符串。


javascript

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(null)); // "[object Null]"

console.log(Object.prototype.toString.call(undefined)); // "[object Undefined]"

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

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

console.log(Object.prototype.toString.call(new Date())); // "[object Date]"


4. Array.isArray()


对于数组的判断,可以使用 Array.isArray() 方法来检测一个值是否为数组。


javascript

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

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


5. Number.isNaN()


用来判断一个值是否为 NaN


javascript

console.log(Number.isNaN(NaN)); // true

console.log(Number.isNaN("Hello")); // false


总结


- 使用 typeof 可以判断基本数据类型,但对数组和 null 识别不足。

- 使用 instanceof 可以判断对象的构造函数,但不适用于基本数据类型。

- Object.prototype.toString.call() 方法可以精确判断数据类型,推荐用于复杂的类型判断。

- Array.isArray() 特别适用于数组的判断。

- Number.isNaN() 用于判断 NaN


根据不同的需求,可以选择适合的方法来判断数据类型。


上一个 js数组和字符串的相互转换 文章列表 下一个 常用的git命令

最新

工具

© 2019-至今 适观科技

沪ICP备17002269号