Eine kurze Diskussion über die Magie von parseInt() in JavaScript

Eine kurze Diskussion über die Magie von parseInt() in JavaScript

Ursache

Der Grund für das Schreiben dieses Blogs ist, dass ich heute die tägliche Frage von Leetcode beantwortet habe. Es handelt sich um eine Frage zur Konvertierung einer Zeichenfolge in eine Ganzzahl (atoi). Wenn Sie interessiert sind, können Sie auf den Titel klicken, um die ausführliche Beschreibung anzuzeigen. Nachdem ich es viele Male debuggt und schließlich erfolgreich übermittelt hatte, ging ich zum Kommentarbereich, um die Lösungen der Experten zu sehen. Nachdem ich es gelesen hatte, konnte ich nicht anders, als zu seufzen, dass parseInt() in JavaScript so hervorragend ist. Das sagt mir eine Wahrheit: Es kann sein, dass wir die APIs, von denen wir meinen, dass wir mit ihnen sehr vertraut sind, nicht wirklich beherrschen. ”

Meine Antwort

/**
 * @param {string} str
 * @return {Zahl}
 */
var meinAtoi = Funktion(str) {
    str = str.trim();
    //Fang das erste Zeichen des Strings ab var firstChar = str.charAt(),res = '',regSymbol = /^[\-\+]{1}/,regNumber = /^[0-9]{1}/;

    wenn(!regSymbol.test(erstesZeichen) && !regNumber.test(erstesZeichen)){
        gebe 0 zurück;
    }

    //Das erste Zeichen ist + oder -
    wenn(regSymbol.test(firstChar)){
        var sliceStr = str.slice(1,str.length);
        für(var i=0;i<sliceStr.length;i++){
            wenn (regNumber.test(sliceStr.charAt(i))) {
                res += sliceStr.charAt(i);
            }anders{
                brechen;
            }
        }
        
        (res.Länge)? res = parseInt(erstesZeichen + res) : res = 0;

        wenn(firstChar == '-' && res < Math.pow(-2,31)){
            res = Math.pow(-2,31);
        }

        wenn(firstChar == '+' && res > Math.pow(2,31) - 1){
            res = Math.pow(2,31) - 1;
        }

        Rückgabewert;
    }

    //Das erste Zeichen ist eine Zahl if (regNumber.test(firstChar)) {
        var sliceStr = str;
        für(var i=0;i<sliceStr.length;i++){
            wenn (regNumber.test(sliceStr.charAt(i))) {
                res += sliceStr.charAt(i);
            }anders{
                brechen;
            }
        }

        wenn (parseInt(res) > Math.pow(2,31) - 1) {
            res = Math.pow(2,31) - 1;
        }

        Rückgabewert;
    }
};

Die Antwort vom Chef

/**
 * @param {string} str
 * @return {Zahl}
 */
var meinAtoi = Funktion(str) {
    Konstante Zahl = parseInt(str, 10);

    wenn(istNaN(Zahl)) {
        gebe 0 zurück;
    } sonst wenn (Zahl < Math.pow(-2, 31) || Zahl > Math.pow(2, 31) - 1) {
        Rückgabewert < Math.pow(-2, 31) ? Math.pow(-2, 31) : Math.pow(2, 31) - 1;
    } anders {
        Rücksendenummer;
    }
};

Durch Vergleich wissen wir, dass parseInt() in JavaScript eine Reihe von Operationen ausgeführt hat, wie etwa das Abfangen leerer Zeichenfolgen, das Beurteilen des ersten Buchstabens und das Zurückgeben von Ergebnissen vom Typ „Zahl“. Es passt einfach perfekt zur heutigen Tagesfrage. Es ist so cool, parseInt() zu verwenden, um dieses Problem zu lösen.

Dies ist das Ende dieses Artikels über die wunderbaren Verwendungsmöglichkeiten von parseInt() in JavaScript. Weitere relevante Inhalte zu JavaScript parseInt() finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Untersuchung und Korrektur des seltsamen Verhaltens von parseInt() in js
  • Detaillierte Erklärung der JS-Konvertierungsfunktionen Number(), parseInt(), parseFloat()
  • Tiefgreifendes Verständnis von Number(), parseInt() und parseFloat() in JS
  • Detaillierte Erklärung des Unterschieds zwischen Number(), parseInt() und parseFloat() in js
  • Analyse der Verwendung von parseInt() und map() in JS
  • Definition und Verwendungsanalyse der Funktion parseInt() in Javascript
  • Die Javascript-Funktion parseInt() hat einen Fehler bei der Konvertierung
  • Einführung in die Verwendung der parseInt()-Methode des globalen Objekts in Javascript
  • JavaScript parseInt() Funktion Basiskonvertierung Achtung Details

<<:  So implementieren Sie Linux Deepin, um redundante Kernel zu löschen

>>:  So finden Sie Informationen zu nicht festgeschriebenen Transaktionen in MySQL

Artikel empfehlen

Vue verwendet OSS zum Hochladen von Bildern oder Anhängen

Verwenden Sie OSS, um Bilder oder Anhänge in ein ...

So schreiben Sie den Stil einer CSS3-Tianzi-Rasterliste

In vielen Projekten ist es notwendig, die Funktio...

Liste der HTML-Tags und Hinweise zur Verwendung

Liste der HTML-Tags markieren Typ Name oder Bedeu...

So fügen Sie bedingte Ausdrücke zu Aggregatfunktionen in MySql hinzu

MySQL-Filterungs-Timing von Where-Bedingungen und...

Beispielcode des Vue-Symbolselektors

Quelle: http://www.ruoyi.vip/ Vue von „vue“ impor...

So zeigen Sie Webseiten in verschiedenen Auflösungen und Browsern richtig an

Die Schlüsselcodes lauten wie folgt: Code kopieren...

Implementierungscode für mehrzeilige Textkomponenten der Vue-Faltanzeige

Faltdisplay mit mehrzeiligem Textbaustein Falten ...

Mysql, einige komplexe SQL-Anweisungen (Abfragen und Löschen doppelter Zeilen)

1. Suchen Sie nach doppelten Zeilen Wählen Sie * ...

Lösung für die nicht wirksame Änderung des El-Popover-Stils von ElementUI

Bei der Verwendung von Element-UI gibt es eine hä...

Verwenden Sie „overflow: hidden“, um Seiten-Bildlaufleisten zu deaktivieren

Code kopieren Der Code lautet wie folgt: html { Ü...

So isolieren Sie Benutzer in Docker-Containern

Im vorherigen Artikel „UID und GID in Docker-Cont...

Umfassendes Verständnis der Node-Ereignisschleife

Inhaltsverzeichnis Knoten-Ereignisschleife Ereign...

...