Uma rápida olhada nos literais octais e binários no ES6

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); // 41Linguagem 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); // 58Linguagem 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 0oseguido 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 SyntaxErrorcomo mostrado no exemplo a seguir:

let d = 0o58;
console.log(d); // SyntaxErrorLinguagem 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); // 7Linguagem 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); // 7Linguagem de código:  JavaScript  ( javascript )

Resumo

  • Literais octais começam com 0oseguido por uma sequência de números entre 0 e 7.
  • Literais binários começam com 0bseguido por uma sequência de números 0 e 1.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *