唯一数字类型:number

唯一数字类型:number

JavaScript采用 IEEE 754 的规范 双精度数字,JavaScript中只有一种数字类型:基于 IEEE 754 标准的双精度 。它并没有为整数给出一种特定的类型,所以所有的数字都是小数。
并且,当你定义x=123.000时,x.toString()只会得到字符串'123'。注意到,以下情况使用toString()结果都是123:

a=123.000;
b=123.;
c=1123;

是的没错,注意到第二种真的可以只带小数点,事实上这些都表示同一个值,都是等价的写法,且有a===b===c
重点来了,我们知道number类型自带toString方法,然而123.toString()会报如下错误:

Uncaught SyntaxError: Invalid or unexpected token

事实上一如开头的例子,123.toString()等价于123.000toString(),也等价于123toString(),你会发现其实错误在于少个点,所以报出以上非法语句的错误。
正确写法:123..toString()
对的,你又没看错,这是两个点,第一个是小数点,第二个是该number对象需要的点。


注意事项

进行位操作的时候,由于位操作符只能对整数进行操作,所以对number进行操作的时候,会直接舍弃小数后面的值,这常常导致了一些骚操作:

let a=3.23;
console.log(a<<0); // 3,左移零位,舍弃了小数部分
console.log(a>>0); // 3,右移零位
console.log(~~a); // 3,两次取反,还是原来的数字
posted @ 2020-03-02 13:17  Sebastian·S·Pan  阅读(365)  评论(0编辑  收藏  举报