Heim >Web-Frontend >js-Tutorial >Die einfachste Implementierungsmethode zur Bestimmung des Ganzzahltyps in JavaScript

Die einfachste Implementierungsmethode zur Bestimmung des Ganzzahltyps in JavaScript

高洛峰
高洛峰Original
2016-11-02 10:23:571125Durchsuche

Wir wissen, dass JavaScript den Operator „typeof“ bereitstellt. Daher ist es am einfachsten, mit „typeof“ zu bestimmen, ob es sich um einen Zahlentyp handelt.

Kopieren Sie den Code wie folgt:

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 unangenehm, Schließlich wird niemand NaN für arithmetische Operationen verwenden, nachdem er isNumber zur Beurteilung verwendet hat.

Dann verbessern Sie es und versuchen Sie es mit Object.prototype.toString.

Kopieren Sie den Code wie folgt:

function isNumber(obj) {  
  return Object.prototype.toString.call(obj) === '[object Number]'
  }

Dieses Mal, wenn die Eingabe keine Zahl ist (NaN oder ein Wert, der in NaN konvertiert werden kann) , es wird false zurückgegeben

Kopieren Sie den Code wie folgt:

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 es gibt ein Äquivalent, verwenden Sie isFinite, um zu beurteilen

Kopieren Sie den Code wie folgt:

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, die isNaN verwendet Funktion. Das Folgende ist eine großartige Einführung des weltweit kürzesten Webseitencodes zur Zahlenbeurteilung

Kopieren Sie den Code wie folgt:

function isNumber(obj) {
    return obj === +obj
}

Für Ganzzahlen geben Gleitkommazahlen „true“ zurück , für NaN oder konvertierbar. Gibt „false“ zurück, wenn der Wert NaN ist.

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).

Kopieren Sie den Code wie folgt:

// 判断字符串
function isString(obj) {
    return obj === obj+''
}
// 判断布尔类型
function isBoolean(obj) {
    return obj === !!obj
}


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Umfang von AngularJsNächster Artikel:Umfang von AngularJs