2016-10-11 2 views
0

Warum protokolliert console.log(0123); die ganze Zahl. 83? Ich bin mir nicht sicher, warum es auch eine Idee hätte und auch nicht.warum tut console.log (0123); log 83?

+1

Mögliches Duplikat von [Warum wird JavaScript 16384 anstelle von 040000 ausgegeben?] (Http://stackoverflow.com/questions/21036122/why-does-javascript-output-16384-instead-of-040000) –

+0

Mögliches Duplikat von [Präfix Null ändert die Ausgabe in Zahlenaddition] (http://stackoverflow.com/questions/9139648/prefix-zero-changes-output-in-number-addition) – cske

Antwort

4

Weil es als Oktalzahl interpretiert wird, und Oktal 123 entspricht Dezimal 83 (64 + 16 + 3).

Von MDN:

Leading 0 (zero) on an integer literal, or leading 0o (or 0O) indicates it is in octal. Octal integers can include only the digits 0-7.

+0

Nur wenn es eine 0 vor oder für jede ganze Zahl gibt? –

+0

Nur wenn eine '0',' 0o' oder '0O' davor steht. –

+0

Beachten Sie, dass Sie im strikten Modus 'SyntaxError: Oktal-Literale sind im strikten Modus nicht zulässig 'für das Literal' 0123', aber * nicht * für '0o123' erhalten. – nnnnnn

0

Da die führende 0 (Null) oder 0o 0O auf einer ganzen Zahl eine Oktalzahl anzeigt !!

Octal Nummerierungssystem wird heutzutage weniger verwendet und ist als digitales Basisnummernsystem fast verschwunden. Das hexadezimale Nummerierungssystem ist jetzt so beliebt!

Verwandte Themen