Ich lerne kürzlich ES6 und habe einige Fragen zur numerischen Erweiterung.
ES6 bietet zwei Methoden für das Number-Objekt: Number.isFinite() und Number.isNaN()
Der Unterschied zu ES5 besteht darin, dass die Notwendigkeit entfällt, Number() einmal aufzurufen, um den nicht numerischen Wert vor der Beurteilung in einen numerischen Wert umzuwandeln.
Hinweis: Der Unterschied zwischen den beiden Methoden und den herkömmlichen Methoden isFinite() und isNaN() besteht darin, dass die herkömmliche Methode zuerst Number() aufruft, um den nicht numerischen Wert in einen numerischen Wert umzuwandeln, und dann beurteilt. Diese beiden Methoden sind nur für numerische Werte gültig und geben für nicht numerische Werte „false“ zurück.
Ich verstehe nicht ganz, warum wir das tun. Ich denke, es wäre nicht besser, Number() einmal aufzurufen, um den nicht numerischen Wert in einen numerischen Wert umzuwandeln, bevor wir urteilen.
可以看看MDN的描述
而isFinite的你可以比较下Number.isFinite(true)和isFinite(true)就知道了。当然,Number.isFinite("")和isFinite("")也可以。
这两个功能是Number上判断一个数值是否为有限的,或者是否为NaN,前提是数字,如果将string等内部暗操作转化成数字,就失去其本身所要直接表达的含义,还有带来一些其它问题,就变成不仅仅可以判断数字,也可以判断string等类型。
参考链接:
es6
isNaN