下午做了道题,题是这样的:
Complete the function circleArea so that it will return the area of a circle with the given radius. Round the returned number to two decimal places (except for Haskell). If the radius is not positive or not a number, return false.
Example:
circleArea(-1485.86); //returns false
circleArea(0); //returns false
circleArea(43.2673); //returns 5881.25
circleArea(68); //returns 14526.72
circleArea("number"); //returns false
最后结果如下:
var circleArea = function(radius) {
return radius > 0 ? +(radius*radius*Math.PI).toFixed(2) : false;
};
这些都不是重点,重点是里面的+(radius*radius*Math.PI).toFixed(2)
这句前面的+
号,这里是为了把String转为number型?为何这样可以?
然后我自己试了下:
一个+
号为何如此神奇,底下的原理是什么?
类似的还有~~
也可以把一个字符串转为数字类型?
这是为何呢?
问题解决(2015.09.17 22:12更新):
对于非数值应用一元操作符,该类型会像Number()转型函数一样对这个值执行转换。《JavaScript高级程序设计P38》
这是 一元 运算符