前端之路——JavaScript中的类型
JavaScript中的类型
null和undefined
null
和undefined
是JavaScript中两个特殊的原始值,代表了各自类型(null
、undefined
)中唯一的值
-
null
null 是JavaScript的关键字
typeof null // “object”
可以理解为null是一个特殊的对象,含义是“非对象”,可以用来表示数字,字符串,对象是无值的。
-
undefined
undefined是预定义的全局变量(不是关键字)
null和undefined都表示“值的空缺”,用==
判断会返回true, 需要使用===
null == undefined //true
null === undefined //false
number
JavaScript中不区分整数和浮点数,一律采用64位浮点数表示。
-
整数
-
能够表示的整数范围是 ~ ,包含边界值。在实际操作的过程中则是基于32的整数(数组索引,位运算)。
-
JavaScript中算术运算在上溢 、下溢、被零整除时不会报错,结果会是
Infinity
或-Infinity
(上溢,被零整除)和0
或-0
。正零和负零在被用作除数时,结果分别时
Infinity
和-Infinity
,其他情况下二者完全相等。 -
零除零
0/0
是没有意义的,结果是NaN(Not a Number)。Infinity/Infinity,给负数开方,算术运算符与非数字或无法转换为数字的操作数一起使用,结果都是NaN。
NaN与任何值都不相等,包括其本身。
-
-
浮点数
-
小数部分只能精确表示2的负整数次幂,即、... (这是由二进制决定的)
也就是说0.1也无法精确表示
-
boolean
boolean
类型只有两个值,true和false。
任意的JavaScript值都可以被转换成boolean值
-
以下值都会被转换成boolean
undefined、 null、 0、-0、NaN、 “”(空字符串)
-
对象值都会被转换成true
Boolean('false') //true