Быстрый взгляд на восьмеричные и двоичные литералы в ES6

Краткое описание: в этом уроке вы узнаете, как представлять восьмеричные и двоичные литералы в ES6.

В ES5 числовые литералы представлены в восьмеричном (префикс 0), десятичном (без префикса) и шестнадцатеричном (0x) виде. В ES6 добавлена поддержка двоичных литералов и изменен способ представления восьмеричных литералов.

Восьмеричные литералы

Для представления восьмеричного литерала в ES5 используется префикс нуля (0), за которым следует последовательность восьмеричных цифр (от 0 до 7). Например:

let a = 051; console.log(a); // 41
Code language: JavaScript (javascript)

Если восьмеричный литерал содержит число, выходящее за пределы диапазона, JavaScript игнорирует ведущий 0 и рассматривает восьмеричный литерал как десятичную дробь, как показано в следующем примере:

let b = 058; // invalid octal console.log(b); // 58
Code language: JavaScript (javascript)

В этом примере, поскольку 8 является недопустимой цифрой для представления восьмеричного числа, JavaScript игнорирует 0 и рассматривает целое число как десятичную дробь со значением 58.

Обратите внимание, что восьмеричные литералы можно использовать в нестрогом режиме. Если вы используете их в строгом режиме, JavaScript выдаст ошибку.

"use strict" let b = 058; // invalid octal console.log(b);
Code language: JavaScript (javascript)

Вот сообщение об ошибке:

SyntaxError: Decimals with leading zeros are not allowed in strict mode.
Code language: JavaScript (javascript)

ES6 позволяет указать восьмеричный литерал с помощью префикса 0o, за которым следует последовательность восьмеричных цифр от 0 до 7. Вот пример:

let c = 0o51; console.log(c); // 41
Code language: JavaScript (javascript)

Если вы используете недопустимое число в восьмеричном литерале, JavaScript выдаст ошибку SyntaxError, как показано в следующем примере:

let d = 0o58; console.log(d); // SyntaxError
Code language: JavaScript (javascript)

Двоичные литералы

В ES5 JavaScript не предоставлял никакой буквенной формы для двоичных чисел. Чтобы разобрать двоичную строку, вы используете функцию parseInt(), как показано ниже:

let e = parseInt('111',2); console.log(e); // 7
Code language: JavaScript (javascript)

В ES6 добавлена поддержка двоичных литералов с помощью префикса 0b, за которым следует последовательность двоичных чисел (0 и 1). Вот пример:

let f = 0b111; console.log(f); // 7
Code language: JavaScript (javascript)

Сводка

  • Восьмеричные литералы начинаются с 0o, за которым следует последовательность цифр от 0 до 7.
  • Двоичные литералы начинаются с 0b, за которым следует последовательность цифр 0 и 1.

Оцените статью
devanswers.ru
Добавить комментарий