本篇文章给大家谈谈js 函数式编程库,以及js 公式编辑器,希望对各位有所帮助,不要忘了收藏本站喔。
一、加号 +
<>
//隐式转换
console.log(2+true); //true -> 1,结果为3
console.log(2+false); //false -> 0,结果为2
console.log(2+undefined); //undefined -> undefined,结果为NaN
console.log(2+null); //null -> 0,结果为2
console.log(2+'null'); //发生字符串的拼接,结果为'2null'
console.log(2+'33'); //发生字符串的拼接,结果为'233'
</>
二、乘号 *
<>
//隐式转换
console.log(2*true); //true -> 1,结果为2
console.log(2*false); //false -> 0,结果为0
console.log(2*undefined); //undefined -> undefined,结果为NaN
console.log(2*null); //null -> 0,结果为0
console.log(2*'null'); //null无法转换为数字进行*运算,结果为NaN
console.log(2*'33'); //'33'转换为数字类型的33,结果为2*33=66
</>
三、取余%
<>
//隐式转换
console.log(2%true); //true -> 1,结果为1
console.log(2%false); //false -> 0,结果为NaN
console.log(2%undefined); //结果为NaN
console.log(2%null); //null -> 0,结果为NaN
console.log(2%'null'); //结果为NaN
console.log(2%'33'); //'33'转换为数字类型的33,结果为2%33=2
</>
四、特殊数值的运算
<>
//隐式转换
console.log(Infinity+1000); //无穷大加上一个数字,结果也是无穷大,为Infinity
console.log(Infinity-1000); //无穷大减去一个数字,结果也是无穷大,为Infinity
console.log(Infinity/1000); //无穷大除以一个数字,结果也是无穷大,为Infinity
console.log(Infinity*1000); //无穷大乘以一个数字,结果也是无穷大,为Infinity
console.log(Infinity+Infinity); //无穷大加上无穷大,结果也是无穷大,为Infinity
console.log(Infinity-Infinity); //无穷大减去无穷大,无法确定哪个无穷大更大,所以结果为NaN
console.log(0/0); //0除以0,结果为NaN
console.log(3/0); //3除以0,结果为Infinity
console.log(NaN/3); //NaN除以3,结果为NaN
</>
五、数学运算公式
Math.pow(n,m):n的m次方
Math.sqrt(n):n的开方
<>
console.log(Math.pow(5,5)); //5的5次方
console.log(Math.sqrt(16)); //16开方,为4
</>
总结:
1、加号运算符中,有字符串参与运算会发生字符串拼接,无字符串参与运算则其他类型的数据会转换为数字类型参与运算,无法转换则结果显示NaN;
2、其他运算符中,数字类型以外的其他数据类型都会转换为数字类型参与运算,无法转换则结果显示NaN;
注意:
在开发中,不要使用浮点数进行运算,因为js本质上都是浮点数,是转换为二进制进行运算,浮点数在转换为二进制的时候会发生精度上的错误;
解决方法:
可以使用浮点数乘以10或者10的n次方,运算之后,最后结果再除以相应的数值