typeof
是 JavaScript 中的一个一元操作符,用于检测变量的数据类型。它返回一个字符串,表示未经计算的操作数的类型。以下是 typeof
的基本用法和一些关键点:
typeof variable
typeof
可以返回以下几种类型的字符串:
"undefined"
—— 如果变量未定义。"boolean"
—— 如果变量是布尔值。"number"
—— 如果变量是数字。"string"
—— 如果变量是字符串。"bigint"
—— 如果变量是 BigInt 类型。"symbol"
—— 如果变量是 Symbol 类型。"object"
—— 如果变量是对象或者 null
(这是一个历史遗留问题)。"function"
—— 如果变量是函数(在 JavaScript 中,函数也是对象)。console.log(typeof undefined); // "undefined"
console.log(typeof true); // "boolean"
console.log(typeof 123); // "number"
console.log(typeof "hello"); // "string"
console.log(typeof BigInt(9007199254740991)); // "bigint"
console.log(typeof Symbol("foo")); // "symbol"
console.log(typeof null); // "object" (这是一个已知的问题)
console.log(typeof {}); // "object"
console.log(typeof []); // "object"
console.log(typeof function(){}); // "function"
typeof null
返回 "object"
,这是一个历史遗留问题,在 JavaScript 最初的设计中,值是由一个类型标签和实际数据组成的。null
被表示为全零,这是对象的类型标签,所以 typeof null
错误地返回 "object"
。typeof
是区分大小写的,例如 typeof myVariable
和 typeof MyVariable
是不同的。typeof
可以用来检查变量是否已声明,但不会抛出引用错误。如果变量未声明,它会返回 "undefined"
。typeof
来检查参数的类型,以确保它们符合预期。typeof
来检查对象是否存在,以避免运行时错误。假设你有一个函数,它接受一个参数并尝试将其转换为数字,但如果参数不是数字类型,你希望返回一个错误消息:
function convertToNumber(value) {
if (typeof value !== 'number') {
return 'Error: Provided value is not a number.';
}
return Number(value);
}
console.log(convertToNumber('abc')); // "Error: Provided value is not a number."
console.log(convertToNumber(123)); // 123
在这个例子中,typeof
被用来确保传入的值是数字类型,如果不是,则返回一个错误消息。
了解 typeof
的用法和限制对于编写健壮的 JavaScript 代码非常重要。
领取专属 10元无门槛券
手把手带您无忧上云