Vorwort
Vor einigen Jahren, als Spidermonkey den strengen Modus implementierte, erfuhr ich, dass der strenge Modus das Schreiben des Octal Integer -Bereichs deaktiviert. Da es Hinweise darauf gibt, dass einige Neulinge die führenden 0S verwenden, um Zahlen in mehreren Zeilen auszurichten, was zu unerwarteten Ergebnissen führt:
var sum = 015 + // entspricht 13 in Decimal, nicht 15 197 + 001; // Wie auch immer, es ist 1console.log (sum) // Die durch Addition erhaltene Summe beträgt 211, nicht 213, wie Neulinge denken
Einige Entwickler benötigen jedoch immer noch Oktalzahlen (insbesondere diejenigen, die Entwickler von Mozilla Extension und Node.JS) und die häufigste bei der Verarbeitung von Dateiberechtigungen (755, 644) sind. Daher hat ES6 eine neue Octal Integer -Schreibmethode hinzugefügt. Ähnlich wie bei hexadezimal 0x oder 0x verwendet die neue Oktalgleger 0O oder 0O als führende Kennung, gefolgt von mehreren oktalischen numerischen Zeichen (0 bis 7). Diese Schreibmethode stört keine Neulinge mehr:
var default_perms = 0o644; // auch im strengen Modus verfügbar
Es ist erwähnenswert, dass die Lesbarkeit des 0O -Präfixes zu schlecht ist (0 und Großbuchstaben o aussehen zu ähnlich und es schwierig zu unterscheiden). Ich habe diese Frage zu Esdiscuss aufgeworfen, in der Hoffnung, das Präfix von Großbuchstaben 0o zu deaktivieren. Die derzeitige Entscheidung von TC39 ist jedoch immer noch der Ansicht, dass die Konsistenz größer sein sollte als die Lesbarkeit (Konsistenz bedeutet, dass sie mit 0x und 0b übereinstimmen sollte). Ich denke, diese Entscheidung ist fraglich und ich empfehle, dass Sie in Großbuchstaben 0o nie verwenden.
Darüber hinaus benötigen einige Entwickler auch eine binäre Ganzzahl -Oberflächenmengenschreibmethode, die nie von ECMascript unterstützt wurde. ES6 unterstützt diese Schreibmethode, ähnlich wie Oktal und Hexadezimal, unter Verwendung von 0B- oder 0B -Präfixen:
var flt_signbit = 0B10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Der0000000000000000000000000000000000000000000000 für0000000000000000000000000000000000000000000000300000000000000000000000030030000000000003000000000030000000030000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000333 0000000000000000000000000000000000000000000000300300333333300300300300333333 weiter Sie diese0000000000000000000030030030033300333333333333003003003003003 weiterill00000000000000 und00000000000000000000000000000000000000000000000000000000300333300333300333300333300333 weiter möchten Der0000000000000000000000000000000000000000000000 für0000000000000000000000000000000000000000000000300000000000000000000000030030000000000003000000000030000000030000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000333
Derzeit hat Firefox Aurora diese beiden Syntaxe implementiert. Wenn Sie abenteuerlicher sind, können Sie auch die aktualisierte Firefox -Nachtnacht verwenden.
Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, der Inhalt dieses Artikels wird für alle im Lernen von ES6 hilfreich sein. Wenn Sie Fragen haben, überlassen Sie bitte eine Nachricht, um zu kommunizieren.