📅  最后修改于: 2023-12-03 15:17:01.123000             🧑  作者: Mango
在 Javascript 中,typeof 是一个操作符,用于返回一个值的数据类型。它通常用于判断一个值是否为 undefined,null,boolean,number,string 或者 object。
typeof x
使用 typeof 操作符返回一个变量的数据类型:
typeof "hello" // 返回 "string"
typeof 123 // 返回 "number"
typeof true // 返回 "boolean"
typeof {} // 返回 "object"
typeof [] // 返回 "object"
typeof null // 返回 "object"
typeof undefined // 返回 "undefined"
由上可以看出,typeof 无法准确地判断一个值是否是对象类型。因为数组、正则表达式、Date、null 等都被 typeof 判断为 "object"。但是,由于 JavaScript 采用对象封装的方式,可以利用对象的 toString() 方法来区分一个变量是否为对象类型:
var arr = [1,2,3];
arr.toString(); // 返回 "1,2,3"
Object.prototype.toString.call(arr); // 返回 "[object Array]"
使用 typeof 检查一个未定义的变量时,会返回 "undefined":
typeof myVar // 返回 "undefined"
使用 typeof 来检查一个函数时,会返回 "function":
typeof function(){} // 返回 "function"
但是,使用 typeof 来检查一个数组时,则会返回 "object":
typeof [1,2,3] // 返回 "object"