Resumo : neste tutorial, você aprenderá sobre os tipos primitivos de wrapper, incluindo Boolean, String e Number.
Introdução aos tipos de wrapper primitivos
JavaScript fornece três tipos de wrapper primitivos: tipos Boolean , Number e String .
Os tipos de wrapper primitivos facilitam o uso de valores primitivos, incluindo booleanos, números e strings.
Veja o exemplo a seguir:
let language = 'JavaScript';
let s = language.substring(4);
console.log(s); // Script
Linguagem de código: JavaScript ( javascript )
Neste exemplo, a variável language
contém um valor de string primitivo. Não tem nenhum método como substring()
. No entanto, o código acima funciona perfeitamente.
Quando você chama um método em uma variável que contém um número, uma string ou um booleano, o JavaScript executa as seguintes etapas nos bastidores:
- Crie um objeto de um tipo correspondente.
- Chame um método específico na instância.
- Exclua a instância imediatamente.
Então o seguinte código
let language = 'JavaScript';
let str = language.substring(4);
Linguagem de código: JavaScript ( javascript )
é tecnicamente equivalente ao seguinte código:
let language = 'JavaScript';
// behind the scenes of the language.substring(4);
let tmp = new String(language);
str = temp.substring(4);
temp = null;
Linguagem de código: JavaScript ( javascript )
Tipos de wrapper primitivos versus tipos de referência
Quando você cria um objeto de tipo de referência usando o new
operador, o objeto permanecerá na memória até sair do escopo.
A seguinte variável s
permanecerá no heap até sair do escopo:
let s = new String('JavaScript');
console.log(s);
Linguagem de código: JavaScript ( javascript )
No entanto, um objeto wrapper primitivo criado automaticamente existe apenas para uma linha de código. Veja o exemplo a seguir:
let s = 'JavaScript';
s.language = 'ECMAScript';
console.log(s.language); // undefined
Linguagem de código: JavaScript ( javascript )
Neste exemplo, tentamos acessar a language
propriedade da s
variável e recebemos um valor undefined
em vez de 'ECMAScript'
:
console.log(s.language); // undefined
Linguagem de código: JavaScript ( javascript )
A razão é que o código a seguir cria um String
objeto e atribui um valor à language
propriedade.
s.language = 'ECMAScript';
Linguagem de código: JavaScript ( javascript )
Porém, o objeto String com a language
propriedade só existe durante a execução desta linha de código.
Não é recomendado criar explicitamente objetos wrapper primitivos como os seguintes:
let n = new Number(10);
let s = new String('JS');
let b = new Boolean(false);
Linguagem de código: JavaScript ( javascript )
No entanto, você deve saber quais métodos estão disponíveis para um valor primitivo para manipulá-lo de forma mais eficaz.
Neste tutorial, você aprendeu sobre os tipos primitivos de wrapper JavaScript para booleanos, números e strings.