Задать вопрос
partyzanx
@partyzanx

Почему Number('0o1') это 1?

Как происходит процесс преобразования?
  • Вопрос задан
  • 237 просмотров
Подписаться 2 Простой 2 комментария
Решения вопроса 3
MvcBox
@MvcBox
Software Engineer [C/C++/JS(for Node.js)/etc]
Number пытается парсить все доступны варианты записей.
0o1 - это валидная запись (восьмеричная система исчисления), здесь даже не надо использовать Number
console.log(0o1);
Ответ написан
Комментировать
0xD34F
@0xD34F Куратор тега JavaScript
Ответ написан
Комментировать
partyzanx
@partyzanx Автор вопроса
Целые числа могут быть выражены в десятичной, шестнадцатеричной, восьмеричной и двоичной системах счисления.
Запись начала литерала 0o (или 0O) указывает, что число находится в восьмеричной СС. Октальные целые числа могут включать только цифры 0-7.
Начало 0x (или 0X) указывает шестнадцатеричную СС. Шестнадцатеричные целые числа могут включать цифры (0-9) и буквы a-f и A-F.
Начало 0b (или 0B) указывает двоичную СС. Двоичные целые числа могут содержать цифры только 0 и 1.
Примеры:

alert('0o11' == 9); // true
alert('0x10' == 16); // true
alert('0b11' == 3); // truе
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы