JavaScript中的所有数字都是64位IEEE 754双精度浮点数,都具有相同的浮点数类型。算术运算(+, - ,*,/,%)对数字起作用。

布尔类型的值在JavaScript中可以是true或false,这两个文字是为布尔值定义的。我们可以使用布尔函数将值转换为布尔值,该语言在需要时将所有内容转换为布尔值

易错点:console.log(1 - 0.3 + 0.1 == 0.8)   ====> 此处初学者很容易上钩,认为终端会打印出true,但是最终经过实践后会发现,答案是false.

指点迷津:在Javascript中采用的IEEE 754双精度浮点数(计算机组成原理中会有提到),在计算机的数据存储中使用的是数字电路闩门来存储,断电时不会进行保存数据,由于二进制的原因【闩门的存储信息只有通电和未通电的所以二进制表示最为好】,每个数字都是计算机以二进制来存储,同样每一位二进制的有对应的原件来存储记忆,当采用的是补码存储,分为S为符号位,Exp为指数位,Fraction为有效数位。最后将存储的数据送入运算器中进行运算。在此过程中以双精度浮点型存储的数字运算如0.1+0.2,最后的答案0.3则会出线按位运算后出现借位/进位等情况,导致最后出现极小的误差。计算机所有的浮点运算都是由于此原因会出现误差,C语言也不除外。

解决方法:可以采用四舍五入的方式来进行解决,可以在判断两边先进行四舍五入操作,然后判定。同样也可以进行做差运算,四舍五入结果是否为0,也可以进行除法,四舍五入后结果是否为1.

知识点:Javascript四舍五入方法toFixed()