8.可能发生隐式类型转换的场景以及转换原则,应如何避免或巧妙应用
答:字符串与数值四则运算,判断语句
字符串与数值做+运算会将数值转换为字符串,然后拼接成新的字符串;其他运算会将字符串转换成数值,转换失败会返回NaN
==、if语句、逻辑判断时会将变量转换为对应的字符串,数值,布尔值
处理非全等判断,if语句、逻辑判断可以利用隐性转换做值得判断,不需要手动处理变量类型的转换;当数值全等比较时,则不能利用隐性转换
9.出现小数精度丢失的原因,JavaScript
可以存储的最大数字、最大安全数字,JavaScript
处理大数字的方法、避免精度丢失的方法
答:js的number类型为浮点数存储,所以0.1+0.2 !=0.3,可以将两个值乘以一个很大的值,运算后再除以相同的值,避免精度丢失(简单方法)
最大安全数为2^53 -1
最大正数为Number.MAX_VALUE
正无穷大为Number.POSITIVE_INFINITY
超出范围的数值可以使用String代替,也可以定义为BigInt类型变量