无意中点击项目,发现一个问题,关于项目中有一个值是需要计算得出这个值的然后保留3位小数
我直接用a/b 然后用了toFixed(3)这个方法,然后对等于0 的情况做了处理让值直接等于0
然后,一直也没发现问题,刚才忽然出现了NaN的情况,检测了一下字段
发现了问题,以下总结以下出现问题的情况
console.log(0/0) NaN
console.log(0/1) 0
console.log(1/0) Infinity
我的问题就是第一种,把0 作为了除数 导致问题的出现
Infinity 这是一种无穷的状态
解决完问题后,决定记录一下,因为老是忽略关于0 的情况,下面就记录一下
1:非数字的运算
5 - 'a' // NaN
在计算的时候把a 解析为数字,但是a 不是数字所以出现NaN
2: 一些数学函数的运算
Math.acos(x) x -1 到 1 的一个数为参数,返回一个 0 到 pi (弧度)的数值。如果传入的参数值超出了限定的范围,将返回 NaN
Math.acos(-2); // NaN
Math.acos(-1); // 3.141592653589793
Math.acos(0); // 1.5707963267948966
Math.acos(0.5); // 1.0471975511965979
Math.acos(1); // 0
Math.acos(2); // NaN
Math.sqrt(-1) //NaN 返回正确舍入的一个double值的正平方根 所以如果为负值为NaN
3: 0/0 这种情况就是我上诉的问题
嗯~~~在总结一些类型为false 的情况吧!
undefined(未定义,找不到值时出现)
null(代表空值)
false(布尔值的false,字符串"false"布尔值为true)
0(数字0,字符串"0"布尔值为true)
NaN(无法计算结果时出现,表示"非数值";但是typeof NaN==="number")
""(双引号)或''(单引号) (空字符串,中间有空格时也是true)