Introdução
Todos sabemos que os tipos de dados JavaScript são divididos em duas categorias: tipos básicos (ou tipos primitivos) e tipos de referência.
Os valores dos tipos básicos são segmentos simples de dados armazenados na memória da pilha e são acessados pelo valor. Existem cinco tipos básicos em JS: indefinido, nulo, booleano, número e string.
Um valor de tipo de referência é um objeto armazenado na memória da heap e seu valor é acessado por referência. Os tipos de referência são principalmente objetos, matriz, função, regexp e data.
Os objetos têm propriedades e métodos, portanto, não é de surpreender que vejamos o seguinte código.
var favs = ['ovo', 'lótus pot']; favs.push ('quiabo'); console.log (favs); // ["ovo", "lotus pote", "quiabo"] console.log (favs.length); // 3A matriz é um tipo de referência, por isso pode ter atributos (comprimento) e métodos (push) naturalmente, o que é natural como ter que tomar sorvete no verão. Mas, veja o código a seguir e pense com cuidado, é isso, isso, é legal?
var realMessage = "disse que eu te amo, mas eu menti"; var myMessage = realMessage.substring (5,15); console.log (myMessage); //"Eu te amo"
Há uma garota de coração partido que fará o método "substring" intencionalmente executar o método "substring" em uma sequência usada para quebrar e depois assistir felizmente o corte e adormecer. Mas, mas não diz que a string é um tipo básico? Por que ele pode ter métodos? ? Existe alguma outra lei real, Mestre Qingtian!
De fato, tudo isso é por causa de algo chamado "tipo de embalagem básico". Esse tipo básico de embalagem é particularmente honesto e é a verdadeira "retornar as roupas após o assunto, escondendo os méritos e a fama"!
Tipo de embalagem básica
Além dos tipos de referência, como objeto e matriz mencionados no início, o JavaScript também nos fornece três tipos de referência especiais: string, número e booleano, o que nos facilita para operar os tipos básicos correspondentes.
Continue olhando para o exemplo acima de cordas de recorte. Você notou que, apesar de usar o método da substring, o valor da realidade em si não mudará. Chamar esse método retorna apenas uma nova string.
É isso que o tipo básico de embalagem faz. Originalmente, você não tem um método, mas quando deseja usá -lo, pode simplesmente ajustá -lo e o tipo de embalagem básico correspondente possui esse método. Por exemplo, o método de substring acima, é impossível para o tipo básico de string ter esse método, mas o tipo de string de embalagem possui, ele sussurrará e retornará o resultado após a execução desse método. Na execução para:
Muitas coisas aconteceram quando o RealMessage.Substring (5,15) essa linha de código.
Primeiro, ele lerá o valor do RealMessage da memória. Quando neste modo de leitura, o plano de fundo começa a funcionar. JS Elevation descreve essas ações concluídas em segundo plano como este:
1. Crie uma instância do tipo de string;
2. Chame o método especificado na instância;
3. Destrua esta instância
O exemplo acima pode ser explicado em código como este:
var _RealMessage = new String ("Disse que eu te amo, mas eu menti"); var myMessage = _realMessage.substring (5,15); _ realMessGae = null; // Destruir após o método ser chamadoPortanto, dessa maneira, entendemos que não é que a string de tipo básico execute seu próprio método, mas o plano de fundo cria uma string de tipo de wrapper básico correspondente para ela. Ele instancia uma instância com base no valor do tipo básico, deixando essa instância chamar o método especificado e, finalmente, se destruir, que está se movendo.
Preste atenção ao recurso "destruir" da última etapa do tipo de wrapper básico, que determina que não podemos adicionar propriedades e métodos personalizados aos valores do tipo básico.
var Me = "Sunjing"; me.age = 18; console.log (me.age); // indefinido
Eu adicionei o atributo de idade à corda "Me", e o valor está definido para ser bonito 18 anos. No entanto, quando eu acessei novamente, esse atributo se foi. Isso é porque:
Quando a segunda linha de atributo de código é executada, uma instância do tipo de wrapper básico é criada em segundo plano. Esse atributo de idade é realmente pendurado na instância, mas imediatamente depois, a instância é destruída. Ao executar na terceira linha, uma nova instância do tipo de wrapper básico é recriada e, naturalmente, não há atributo de idade.
Mostrar tipo de embalagem básica
Além da string no modo de leitura, o plano de fundo nos ajudará a criar a instância do tipo de wrapper básico, que também podemos exibir.
var str = new string ("hello"); var str2 = str.Touppercase (); console.log (str2); // "hello:Isso é diferente do que é salvo na variável quando o plano de fundo nos ajuda a criar.
var str1 = new string ("hello"); var str2 = "hello"; typeof str1 // "objeto" typeof str2 // "string"Resumir
Graças ao tipo básico de embalagem, é mais conveniente operarmos os três tipos básicos de string, booleano e número. Sempre que esses três valores de tipo básico forem lidos, o plano de fundo criará a instância de tipo de wrapper correspondente. Esta instância chamará o método especificado e será destruído após a chamada. Este curto ciclo de vida determina que não podemos adicionar propriedades e métodos personalizados aos tipos primitivos.
O artigo acima tem uma compreensão profunda de por que as strings podem pertencer a JavaScript. Este é todo o conteúdo que compartilho com você. Espero que possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.