返回

辨识 JavaScript 类型与判断类型的方法

前端

JavaScript 中的数据类型

JavaScript 中有 7 种基本数据类型:

  • 字符串 (String): 由文本字符组成的序列。用单引号或双引号表示。例如:'Hello, world!' 或 "Hello, world!"。
  • 数字 (Number): 可以是整数或浮点数。例如:123、3.14 或 -5.67。
  • 布尔值 (Boolean): 只有 true 和 false 两种值。表示真或假。
  • null: 表示空值或不存在的值。
  • undefined: 表示未定义的值。
  • 对象 (Object): 是一种复杂数据类型,可以包含键值对。例如:{ name: 'John Doe', age: 30 }。
  • 数组 (Array): 一种有序的数据结构,可以存储任意数量的元素。例如:[1, 2, 3, 4, 5]。

判断 JavaScript 类型的方法

在 JavaScript 中,我们可以使用以下几种方法来判断值的类型:

1. typeof 运算符

typeof 运算符返回一个字符串,表示值的类型。例如:

typeof 'Hello, world!' // 返回 "string"
typeof 123 // 返回 "number"
typeof true // 返回 "boolean"
typeof null // 返回 "object"
typeof undefined // 返回 "undefined"

需要注意的是,typeof null 返回 "object" 是 JavaScript 的一个历史遗留问题。在严格模式下,typeof null 返回 "null"。

2. Object.prototype.toString 方法

Object.prototype.toString 方法返回一个字符串,表示值的类型。它的语法如下:

Object.prototype.toString.call(value)

其中,value 是要判断类型的值。例如:

Object.prototype.toString.call('Hello, world!') // 返回 "[object String]"
Object.prototype.toString.call(123) // 返回 "[object Number]"
Object.prototype.toString.call(true) // 返回 "[object Boolean]"
Object.prototype.toString.call(null) // 返回 "[object Null]"
Object.prototype.toString.call(undefined) // 返回 "[object Undefined]"

3. 构造函数

我们可以使用构造函数来判断值的类型。例如:

value instanceof String // 返回 true,如果 value 是一个字符串
value instanceof Number // 返回 true,如果 value 是一个数字
value instanceof Boolean // 返回 true,如果 value 是一个布尔值
value instanceof Object // 返回 true,如果 value 是一个对象
value instanceof Array // 返回 true,如果 value 是一个数组

4. instanceof 运算符

instanceof 运算符用于判断一个值是否是某个类型的实例。它的语法如下:

value instanceof Constructor

其中,value 是要判断类型的值,Constructor 是要判断的类型。例如:

'Hello, world!' instanceof String // 返回 true
123 instanceof Number // 返回 true
true instanceof Boolean // 返回 true
null instanceof Object // 返回 false
undefined instanceof Object // 返回 false

5. Array.isArray() 方法

Array.isArray() 方法用于判断一个值是否是数组。它的语法如下:

Array.isArray(value)

其中,value 是要判断类型的值。例如:

Array.isArray([1, 2, 3]) // 返回 true
Array.isArray('Hello, world!') // 返回 false

6. isNaN() 函数

isNaN() 函数用于判断一个值是否是非数字。它的语法如下:

isNaN(value)

其中,value 是要判断类型的值。例如:

isNaN(123) // 返回 false
isNaN('Hello, world!') // 返回 true

7. isFinite() 函数

isFinite() 函数用于判断一个值是否是一个有限数字。它的语法如下:

isFinite(value)

其中,value 是要判断类型的值。例如:

isFinite(123) // 返回 true
isFinite(Infinity) // 返回 false

总结

在这篇文章中,我们探讨了 JavaScript 中的类型及其判断方法。掌握这些方法对于理解和操作 JavaScript 代码至关重要。