javascript的数值和c/c++,java等主流语音不一样,不管是“double”型还是"int"型,它们在内存中都是64位浮点数。
比如我们执行:
1.0 == 1
结果是: true
执行:
1.0 === 1
结果还是true。
我们看下1.0 和 1 的类型:
typeof 1.0
typeof 1
返回结果都是: 'number',它们都是一个类型。
这样有什么好处呢,既然javascript这样设计,就肯定有它的原因。
这样完全避免了"double"型转"int"型丢失精度的问题,也避免了因为数字在内存中占用的字节数不一样导致的一系列的问题。
在我看来,因为javascript最初是在浏览器上执行的,而主流操作系统有32位和64之分,为了避免因为操作系统的不同,导致结果不一样的问题。