📅  最后修改于: 2023-12-03 15:10:51.135000             🧑  作者: Mango
JavaScript中有7种数据类型,它们分别是:Number、String、Boolean、Undefined、Null、Object、Symbol。
在编写JavaScript代码时,我们经常需要检查变量的数据类型。以下是常用的检查JavaScript中数据类型的方法:
typeof操作符可以返回一个变量的数据类型,它的语法如下:
typeof variable
例如:
typeof 42 // "number"
typeof "hello" // "string"
typeof true // "boolean"
typeof undefined // "undefined"
typeof null // "object"
typeof {} // "object"
typeof [] // "object"
typeof function(){} // "function"
需要注意的是,typeof null的返回值为"object",这是一个历史遗留问题。因此,判断数据类型时需要特别注意。
instanceof操作符可以检查一个对象实例是否属于某个类,它的语法如下:
object instanceof constructor
其中,object是要检查的对象实例,constructor是类的构造函数。
例如:
var arr = [];
var date = new Date();
console.log(arr instanceof Array); // true
console.log(arr instanceof Object); // true
console.log(date instanceof Date); // true
console.log(date instanceof Object); // true
需要注意的是,instanceof操作符只能检查对象实例,不能检查基本类型。
Object.prototype.toString方法可以返回一个变量的数据类型,它的语法如下:
Object.prototype.toString.call(variable)
例如:
Object.prototype.toString.call(42) // "[object Number]"
Object.prototype.toString.call("hello") // "[object String]"
Object.prototype.toString.call(true) // "[object Boolean]"
Object.prototype.toString.call(undefined) // "[object Undefined]"
Object.prototype.toString.call(null) // "[object Null]"
Object.prototype.toString.call({}) // "[object Object]"
Object.prototype.toString.call([]) // "[object Array]"
Object.prototype.toString.call(function(){}) // "[object Function]"
需要注意的是,Object.prototype.toString方法返回的字符串中包含了"[object xxx]",其中"xxx"就是变量的数据类型。
Array.isArray方法用于检查一个值是否为数组,它的语法如下:
Array.isArray(variable)
例如:
Array.isArray([]) // true
Array.isArray([1,2,3]) // true
Array.isArray({}) // false
Array.isArray("hello") // false
需要注意的是,Array.isArray方法只能检查数组,不能检查其他类型的值。
虽然这四种方法都可以用于检查数据类型,但它们之间的差异也很大:
在实际开发中,选择合适的方法,可以大大提高代码的可读性和可维护性。