Resumo : neste tutorial, você aprenderá como representar os literais octais e binários no ES6.
ES5 forneceu literais numéricos em octal (prefixo 0
), decimal (sem prefixo) e hexadecimal ( 0x
). ES6 adicionou suporte para literais binários e mudou a forma como representa literais octais.
Literais octais
Para representar um literal octal no ES5, você usa o prefixo zero ( 0
) seguido por uma sequência de dígitos octais (de 0 a 7). Por exemplo:
let a = 051;
console.log(a); // 41
Linguagem de código: JavaScript ( javascript )
Se o literal octal contiver um número fora do intervalo, o JavaScript ignorará o 0 inicial e tratará o literal octal como um decimal, conforme mostrado no exemplo a seguir:
let b = 058; // invalid octal
console.log(b); // 58
Linguagem de código: JavaScript ( javascript )
Neste exemplo, como 8
é um dígito inválido para representar o número octal, o JavaScript ignora o 0 e trata o número inteiro como um decimal com valor 58.
Observe que você pode usar literais octais no modo não estrito. Se você usá-los no modo estrito, o JavaScript gerará um erro.
"use strict"
let b = 058; // invalid octal
console.log(b);
Linguagem de código: JavaScript ( javascript )
Aqui está a mensagem de erro:
SyntaxError: Decimals with leading zeros are not allowed in strict mode.
Linguagem de código: JavaScript ( javascript )
ES6 permite especificar o literal octal usando o prefixo 0o
seguido por uma sequência de dígitos octais de 0 a 7. Aqui está um exemplo:
let c = 0o51;
console.log(c); // 41
Linguagem de código: JavaScript ( javascript )
Se você usar um número inválido no literal octal, o JavaScript lançará um SyntaxError
como mostrado no exemplo a seguir:
let d = 0o58;
console.log(d); // SyntaxError
Linguagem de código: JavaScript ( javascript )
Literais binários
No ES5, o JavaScript não fornecia nenhuma forma literal para números binários. Para analisar uma string binária, você usa a parseInt()
função da seguinte maneira:
let e = parseInt('111',2);
console.log(e); // 7
Linguagem de código: JavaScript ( javascript )
ES6 adicionou suporte para literais binários usando o 0b
prefixo seguido por uma sequência de números binários (0 e 1). Aqui está um exemplo:
let f = 0b111;
console.log(f); // 7
Linguagem de código: JavaScript ( javascript )
Resumo
- Literais octais começam com
0o
seguido por uma sequência de números entre 0 e 7. - Literais binários começam com
0b
seguido por uma sequência de números 0 e 1.