3 回答
![?](http://img1.sycdn.imooc.com/54584dd900014f6c02200220-100-100.jpg)
TA贡献1842条经验 获得超12个赞
在 Javascript 中存在 isFinite() ,它返回一个数字是否有限。所以:
var result = isFinite(Number((((0-18)/0)*100).toFixed(2))) || 0;
console.log(result);
![?](http://img1.sycdn.imooc.com/5923e28b0001bb7201000100-100-100.jpg)
TA贡献1725条经验 获得超7个赞
最快的方法是使用按位 Not 运算符:
var result = ~~Number((((0-18)/0)*100).toFixed(2))
它的执行速度比其他方法快得多,编写时间也更短。
![?](http://img1.sycdn.imooc.com/545863cd0001b72a02200220-100-100.jpg)
TA贡献1804条经验 获得超3个赞
我支持@Riccardo Gai 的回答。另一种方法是利用Javscript中的以下 2 点。
**Any number % Infinity === number**
**(Infinity || -Infinity) % Infinity === NaN**
因此,您基本上可以将代码重写为...
Number((((0-18)/0)*100).toFixed(2)) % Infinity || 0
你可以试试下面的片段..
console.log(Number((((0-0)/3)*100).toFixed(2)) % Infinity || 0);
console.log(Number((((0-1)/0)*100).toFixed(2)) % Infinity || 0);
console.log(Number((((1-0)/0)*100).toFixed(2)) % Infinity || 0);
console.log(Number((((1-2)/0)*100).toFixed(2)) % Infinity || 0);
console.log(Number((((1-2)/2)*100).toFixed(2)) % Infinity || 0);
console.log(Number((((0-18)/0)*100).toFixed(2)) % Infinity || 0);
添加回答
举报