typeof 是 JavaScript 中的一个运算符,用于返回操作数的数据类型。它通常用于检查变量的类型或确定表达式的类型。typeof 返回一个表示类型的字符串值。以下是 typeof 可能返回的几种类型:
"undefined": 如果操作数未定义。"boolean": 如果操作数是布尔值(true 或 false)。"string": 如果操作数是字符串。"number": 如果操作数是数字(包括整数和浮点数)。"bigint": 如果操作数是 BigInt 类型(ES2020 引入)。"object": 如果操作数是对象、数组或 null(注意:null也被认为是对象,这是 JavaScript 的历史遗留问题)。"function": 如果操作数是一个函数。"symbol": 如果操作数是 Symbol 类型(ES6 引入)。
使用示例
console.log(typeof undefined); // "undefined"
console.log(typeof true); // "boolean"
console.log(typeof "hello"); // "string"
console.log(typeof 42); // "number"
console.log(typeof 123n); // "bigint"
console.log(typeof {}); // "object"
console.log(typeof null); // "object" (这是一个历史遗留问题)
console.log(typeof function(){}); // "function"
console.log(typeof Symbol()); // "symbol"
注意事项
-
null的类型:如上所述,typeof null返回"object",这实际上是一个错误,源于 JavaScript 的早期版本中的一个设计缺陷。 -
检测对象类型:对于更精确的对象类型检测(例如区分普通对象和数组),您可能需要使用其他方法,比如
Array.isArray()或者Object.prototype.toString.call()方法。console.log(Array.isArray([])); // true console.log(Object.prototype.toString.call([]) === '[object Array]'); // true -
检测函数:虽然
typeof可以区分函数和其他对象,但在某些环境中(如浏览器环境),您可能会遇到宿主对象,它们的行为可能与预期不同。因此,在严格模式下或当您不确定时,可以考虑使用其他方式来检测函数。
279

被折叠的 条评论
为什么被折叠?



