在MDN上学习js,看到Math.round方法有个对一个数取小数点后x位的四舍五入方法
其中有一句value = +value;
不明白其原理及作用
MDN Decimal rounding的16行
补充问题:上面链接Decimal rounding 的19行如是写if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0))
是否这样写更简单明了?if (isNaN(value) || typeof exp === 'number' || exp % 1 === 0)
要解读
value = +value
的含义,需要知道js是一门弱类型语言,js的变量间可以相互转换类型。比如:字符串'11'可以被转化为数字11,反向也可转换。所以,value = +value
是对变量value做了类型转换,使用加号运算来将value转化为数字类型(number)。if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0))
这句的逻辑不能改为if (isNaN(value) || typeof exp === 'number' || exp % 1 === 0)
。这是或
和且
的组合使用,应该不需要过多解释,多思考一下就懂了。转换为数字的作用