3 回答
TA贡献1842条经验 获得超13个赞
在 Javascript 中存在 isFinite() ,它返回一个数字是否有限。所以:
var result = isFinite(Number((((0-18)/0)*100).toFixed(2))) || 0;
console.log(result);
TA贡献1725条经验 获得超8个赞
最快的方法是使用按位 Not 运算符:
var result = ~~Number((((0-18)/0)*100).toFixed(2))
它的执行速度比其他方法快得多,编写时间也更短。
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);
添加回答
举报
