In diesem Artikel wird hauptsächlich die einfachste Implementierungsmethode zur Beurteilung von Ganzzahltypen vorgestellt. Dieses Kapitel stellt mehrere Methoden zur Beurteilung von Ganzzahlen vor und fasst schließlich die kürzeste und prägnanteste Implementierungsmethode zusammen, auf die sich Freunde beziehen können.
Wir wissen, dass JavaScript den Operator „typeof“ bereitstellt. Daher ist es am einfachsten, mit „typeof“ zu bestimmen, ob es sich um einen Zahlentyp handelt.
function isNumber(obj) { return typeof obj === 'number' }
Diese Funktion hat kein Problem mit Ganzzahlen und Gleitkommazahlen, gibt aber auch für NaN-Werte true zurück, was den Leuten ein Unbehagen bereitet. Schließlich wird niemand NaN verwenden, um nach der Verwendung arithmetische Operationen durchzuführen isNumber zu beurteilen.
Dann verbessern Sie es und versuchen Sie es mit Object.prototype.toString.
function isNumber(obj) { return Object.prototype.toString.call(obj) === '[object Number]' }
Wie bei der Art der Beurteilung gibt es auch für NaN „true“ zurück. Die Codemenge ist immer noch groß, was nicht das gewünschte Ergebnis ist. Die toString.call-Methode eignet sich zur Beurteilung von Arrays (Array), Zahlen übersteigen jedoch ihre Möglichkeiten.
Als weitere Verbesserung können Sie die isNaN-Funktion verwenden, um mit NaN-Werten umzugehen.
function isNumber(obj) { return typeof obj === 'number' && !isNaN(obj) }
Wenn die Eingabe diesmal keine Zahl ist (NaN oder ein Wert, der in NaN konvertiert werden kann), wird false zurückgegeben
function isNumber(obj) { return typeof obj === 'number' && !isNaN(obj) } isNumber(1) // true isNumber(1.2) // true isNumber(NaN) // false isNumber( parseInt('a') ) // false
Nun, das istNumber ist gut, aber nicht. Es gibt eine äquivalente Methode, die isFinite zur Beurteilung verwendet
function isNumber(obj) { return typeof obj === 'number' && isFinite(obj) }
Bisher ist die numerische Beurteilung des kürzesten Codes die dritte in diesem Artikel erwähnte Methode, die die isNaN-Funktion verwendet . Das Folgende ist eine großartige Einführung des weltweit kürzesten Zahlenbeurteilungscodes
function isNumber(obj) { return obj === +obj }
Gibt true für Ganzzahlen und Gleitkommazahlen zurück und false für NaN oder Werte, die in NaN konvertiert werden können.
Sie verstehen nicht? Gu~~(╯﹏╰)
Gartenfreunde sagten, dass dies nicht der kürzeste numerische Code der Welt sei und der Parameter obj in ein Zeichen geändert werden könne. (⊙o⊙) Du hast recht.
In Analogie dazu gibt es eine ähnlich kürzeste Beurteilung unter Verwendung der dynamischen Sprachfunktionen von JS (automatische interne Typkonvertierung während der Bedieneroperation).
// 判断字符串 function isString(obj) { return obj === obj+'' } // 判断布尔类型 function isBoolean(obj) { return obj === !!obj }
Das Obige ist der gesamte Inhalt dieses Kapitels. Weitere verwandte Tutorials finden Sie unter JavaScript-Video-Tutorial!