本文最后更新于390 天前,其中的信息可能已经过时,如有错误请发送邮件到asure_0506@foxmail.com
typeof 运算符返回参数的类型。当我们想要分别处理不同类型值的时候,或者想快速进行数据类型检验时,非常有用。
对 typeof x 的调用会以字符串的形式返回数据类型:
typeof undefined // "undefined"
typeof 0 // "number"
typeof 10n // "bigint"
typeof true // "boolean"
typeof "foo" // "string"
typeof Symbol("id") // "symbol"
typeof Math // "object" (1)
typeof null // "object" (2)
typeof alert // "function" (3)
最后三行可能需要额外的说明:
Math是一个提供数学运算的内建object。我们会在 数字类型 一节中学习它。此处仅作为一个object的示例。typeof null的结果为"object"。这是官方承认的typeof的错误,这个问题来自于 JavaScript 语言的早期阶段,并为了兼容性而保留了下来。null绝对不是一个object。null有自己的类型,它是一个特殊值。typeof的行为在这里是错误的。typeof alert的结果是"function",因为alert在 JavaScript 语言中是一个函数。我们会在下一章学习函数,那时我们会了解到,在 JavaScript 语言中没有一个特别的 “function” 类型。函数隶属于object类型。但是typeof会对函数区分对待,并返回"function"。这也是来自于 JavaScript 语言早期的问题。从技术上讲,这种行为是不正确的,但在实际编程中却非常方便。
typeof(x)语法你可能还会遇到另一种语法:
typeof(x)。它与typeof x相同。简单点说:
typeof是一个操作符,不是一个函数。这里的括号不是typeof的一部分。它是数学运算分组的括号。通常,这样的括号里包含的是一个数学表达式,例如
(2 + 2),但这里它只包含一个参数(x)。从语法上讲,它们允许在typeof运算符和其参数之间不打空格,有些人喜欢这样的风格。有些人更喜欢用
typeof(x),尽管typeof x语法更为常见。
我们可以通过 typeof 运算符查看存储在变量中的数据类型。
- 通常用作
typeof x,但typeof(x)也可行。 - 以字符串的形式返回类型名称,例如
"string"。 typeof null会返回"object"—— 这是 JavaScript 编程语言的一个错误,实际上它并不是一个object。
补充一个JavaScrip所有特性简述的网页:JavaScript 特性



