@OrdeO
just......newbie

Почему в консоли при записи числа с нулем спереди возвращается число в восьмеричной системе?

Почему в консоли при записи числа с нулем спереди возвращается число в восьмеричной системе?
Я понимаю, что ставя 0 спереди числа браузер начинает воспринимать число не как десятичное а как восьмеричное, но почему именно 8, а не двоичное к примеру?
5c5467481717b530633377.png
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
zendor
@zendor
Да вы все правильно поняли, используйте предикаты (0b - двоичный, 0o - восьмеричный, 0x - шестнадцатеричный),
в строгом режиме (начиная с ES5) вообще запрещено использовать восьмеричный литерал без предиката:
function foo() {
  "use strict";
  0321;
}
//Uncaught SyntaxError: Octal literals are not allowed in strict mode.

А происходит это потому, что согласно спецификации все числа с ведущими нулями расцениваются как числа в восьмеричной системе счисления (только не в строгом режиме, см. выше), скорее всего такое поведение было унаследовано от C/C++.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы