Zusammenfassung
Ich habe gerade vorerst an drei Methoden gedacht. Wenn die Leser an andere gute Methoden denken, können sie auch kommunizieren.
analysieren
Bitbetreiber
Math.floor math.ceil
Beschreibung
1. Parseint
1. Beispiel
parseInt ("13nash"); // 13ParseInt ("") // nanparseInt ("0xa") // 10 (hexadecimal) parseInt ("13") // 13ParseInt ("070") // ES3 ist 56 (Oktal) ES5 IS5 IS5PARSING (22) (070) // beide ES3 und ES3 und ES3 und ES3 und ES5).2. Conversion -Regeln:
(1). Gemäß Beispiel (1) wird ParseInt analysiert, bis es aufhört, wenn nicht nummeriert
(2). Nach Beispiel (2) ist es NAN bei der Parsen einer leeren Zeichenfolge und nicht bei 0, anstatt 0
(3). Laut Beispiel (3) kann ParseInt Hexadezimalzahlen in Dezimalzahl umwandeln
(4). Gemäß Beispiel (4) ignoriert ParseInt die Räume der Zeichenfolge
3. Nachteile:
(1). Laut Beispiel (5) können wir wissen, dass ParseInt bei der Konvertierung von Oktalarrays unvereinbar ist. ES3 wird 070 als Oktalwert betrachten, ES5 wird jedoch 070 als Dezimalwert betrachten.
(2). Nach Beispiel (6) (7) können wir wissen, dass bei der Ausführung von ParseInt den Parameter zuerst in eine Zeichenfolge umgewandelt und dann in eine Ganzzahl ausgeführt wird
4. Erläuterung: Warum (5) (6) Ausführungen 070 in Ganzzahlen umwandeln, aber die Ergebnisse sind unterschiedlich? Dies ist auch der zweite Punkt bei der Lösung der Mängel.
Denn beim Lesen der offiziellen Dokumentation, die ich gesehen habe, wenn String keine Zeichenfolge ist, wird sie in einen konvertiert. Diese Passage. Das heißt, wenn der Parameter keine Zeichenfolge ist, wird er zuerst in eine Zeichenfolge und dann in eine Ganzzahl umwandelt. Zum Beispiel konvertiert ParseInt (070) in Beispiel (6) 070 zuerst in eine Zeichenfolge. Sie können 070+ "" oder String (070) versuchen und wissen, dass 070 in "56" konvertiert wird, da 070 ein Oktalsystem ist. Dann wird es analysig ("56") und die endgültige Ganzzahl ist 56. Ob Sie in ES3 oder ES5 sind, es ist 56
2. Bitbetreiber
1. Beispiel
console.log (0 | "123.45") // 123console.log (0 | 123.45) // 123console.log (0 ^ 123.45) // 123Console.log (~~ 123.45) // 123
2. Prinzip: JavaScript hat nicht das Konzept der Ganzzahlen, und alle numerischen Typen sind die schwimmenden Punktzahlen mit doppelter Präzision. Bei der Verwendung von Bit -Operatoren konvertiert es zunächst den Operanden in eine Ganzzahl, was für den Betrieb geeignet ist. 0 und andere Werte ändern den Betriebswert nicht
3. Math.Floor und Math.ceil
1. Beispiel
console.log (math.floor (2.3) // 2console.log (math.floor (-2.3) //-3console.log (math.ceil (2.3) // 3console.log (math.ceil (-2.3) //-2
2. Die beiden sind unzureichend: Math.Floor erhält die Mindestgranzzahl der Zahl; während math.ceil die maximale Ganzzahl bekommt. Wenn wir also -2,3 abrunden würden, würden wir -2 bekommen, aber wenn wir Math.Floor verwenden, würden wir -3 bekommen. 2.3 verwendet Math. Ceil, um 3 zu bekommen, aber wir brauchen nur 2.
3. Lösen:
// eine Funktionsfunktion selbst definieren. Getint (val) {return val> 0? Math.floor (val): math.ceil (val);}