js有5种基本数据类型: undefined, Null, Boolean,Number, String(, Symbol).还有一种复杂类型数据: Object.
Number()
Number类型采用IEEE 754 64位格式存储,所以jS中的整数和浮点数都是以浮点数表示。浮点型数值占据的内存空间是整数型的两倍,所以JS会不失时机的把浮点数转换为整数。
位操作符不直接操作64位的值,而是先将64位的转换位32位整数,再执行操作,然后将结果转换回64位。
有符号的整数,32位中前31位表示整数值,第32位表示数值符号:0表示正数,1表示负数。
- boolean值,true和false被转换为1和0;
- 数值,不变(会识别十进制/八进制-0开头/十六进制-0x开头)
- null,返回0
- undefined,返回NaN
- 字符串:
- 如果字符串中只包含数字(包括正负号),转换为十进制数值,数值前面有0的会去掉0
- 浮点数,转换为相应的浮点数,但是后面小数位只含0的会去掉0
- 十六进制格式‘0x’,转换为有效的十进制值(Number()会自动把字符串形式的十进制数和十六进制数都转换为十进制,但是不识别八进制,会被当做十进制数处理。)
- 字符串为空或空白符,转换为0
- 包含除上述之外的字符,转换为NaN