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);
添加回答
舉報