摘自:/lidabo/archive/2011/12/29/
js中的typeof是一个运算符,一元运算。
typeof sth
不需要加括号的。
返回值是一个字符串,说明运算数的类型。
typeof 1;
typeof NaN;
typeof Number.MIN_VALUE;
typeof Infinity;
typeof "123";
typeof true;
typeof window;
typeof document;
typeof null;
typeof eval;
typeof Date;
typeof sss;
typeof undefined;
typeof是一个一元运算符,它返回的结果 始终是一个字符串,对不同的操作数,它返回不同的结果。
具体的规则如下:
number
对于数字类型的操作数而言, typeof 返回的值是 number。
比如说:
typeof(1),返回的值就是number。
上面是举的常规数字,对于非常规的数字类型而言,其结果返回的也是number。
比如
typeof NaN
NaN在JavaScript中代表的是特殊非数字值,虽然它本身是一个数字类型。
在JavaScript中,特殊的数字类型还有几种:
Infinity 表示无穷大特殊值
NaN 特殊的非数字值
Number.MAX_VALUE 可表示的最大数字
Number.MIN_VALUE 可表示的最小数字(与零最接近)
Number.NaN 特殊的非数字值
Number.POSITIVE_INFINITY 表示正无穷大的特殊值
Number.NEGATIVE_INFINITY 表示负无穷大的特殊值
以上特殊类型,在用typeof进行运算进,其结果都将是number。
string
typeof "123"
boolean
typeof true
object
对于对象、数组、null返回的值是object。
比如说
typeof window
typeof document
typeof null
function
对于函数类型,返回的值是function.
typeof eval
typeof Date
undefined
如果运算数是没有定义的(不存在的变量、函数或者undefined等),将返回undefined
typeof sss
typeof undefined