typeof本身不算函数,算关键字类似于C的sizeof
typeof 可能的类型
- underfined
- string
- number
- boolean
- object
- function
- symbol(ES6)
number
- number类型必须定义在 Number.MAX_VALUE 以及 Number.MIN_VALUE 之间 如果算出来的值
大于Number.MAX_VALUE 会被赋值为Infinity 小于-Number.MAX_VALUE 会被赋值为-Infinity
这个时候生成的值不能在用于计算 可以用 isFinite()这个函数判断是否一个数是否无穷大或者无穷小
如果是 返回 false 即不有限 (在这个地方W3C上写的有误,W3C写的是小于-Number.MIN_VALUE 会被赋值为-Infinity,
实际上应该是被赋值为0) - NaN 这个值表示 Not a Number 转化失败的时候就会返回这种情况 NaN也不能用于算数计算 而且奇特的是,他与自身是不相等的 isNaN()可以判断一个数是否为NaN
symbol
含有symbol类型的值或起本身一定和其他的值不相等,symbol是符号的意思,有点独一无二的意思
下面代码演示
上面是所有类型的演示
下面演示特殊的number 和 symbol
这里的symbol演示不够全面
等到symbol章节会专门阐述