Tipos Primitivos와 Tipos de Referência
No post de hoje irei falar sobre tipos primitivos e tipos de reference.
티포스 프리미티보스
O tipo primitivo, Refere-se a um dado que não é Representativeado por um
objeto
.JavaScript 없음, 기본 6가지 팁:
Na maioria das vezes, um valor primitivo é Representativeado diretamente no nível mais baixo da implementação da linguagem.
Todos os tipos primitivos são imutáveis, ou seja, não podem ser alterados.
É Importante não confundir um tipo primitivo em si com uma variável attribuída a um valor primitivo. A variável pode ser reatribuída a um novo valor, mas o valor existente não pode ser alterado das mesmas formas que fazemos com objetos, matrizes e funções.
티포스 데 레퍼렌시아
사물의 맥락이 없습니다. 사물의 참조가 아닙니다.
JavaScript 없음, 참조용 팁:
Tipos Primitivos e Tipos por Referência 입력
A diferença entre eles está relacionada na forma como são armazenados na memória.
Quando criamos algum tipo primitivo, a gente atribui uma variável, esse valor é armazenado na
stack
que na tradução significa pilha.A
stack
é uma pilha de diferentes valores na memória que podem ser acessados Rapidamente quando precisamos utiliza-los, porém, o espaço dentro dela é limitado.Já quando criamos um tipo de referência (objetos), esse valor ficar armazenado no
heap
que na tradução significa amontoado.O
heap
tem mais espaço disponível, permitindo armazenar objetos maiores e mais complexos, porém, ele é um pouquinho mais lento que a stack
.Exemplo de como funciona o tipo primitivo na
stack
:let scoreOne = 50
let scoreTwo = scoreOne
console.log(`ScoreOne: ${scoreOne} | ScoreTwo: ${scoreTwo}`) // scoreOne: 50 | scoreTwo: 50
scoreOne = 100
console.log(`ScoreOne: ${scoreOne} | ScoreTwo: ${scoreTwo}`) // scoreOne: 100 | scoreTwo: 50
Perceba que mesmo atribuindo novo valor a variável
scoreOne
, o valor atribuído a variável scoreTwo
não foi alterado, mesmo que o seu valor na criação tenha scoreOne
참조에 대한 예시:
let userOne = {
name: 'Roger',
age: 31
}
let userTwo = userOne
console.log(userOne, userTwo) // Object { name: "Roger", age: 31 } Object { name: "Roger", age: 31 }
userOne.age = 35
console.log(userOne, userTwo) // Object { name: "Roger", age: 35 } Object { name: "Roger", age: 35 }
Já nos tipos por reference isso não ocorre, pois o JavaScript, utiliza um ponteiro na atribuição, que faz com que esse ponteiro semper aponte pro objeto original no
heap
.Por isso quando alterei a idade do
userOne
, o reflexo foi percebido no userTwo
, pois por baixo dos panos, o ponteiro está somente apontando para o mesmo objeto.E chegamos ao fim de mais um post da minha saga de estudos em JavaScript.
Esse foi mais um post da minha saga de estudos em JavaScript Vanilla. Espero que estejam gostando!
Qualquer dúvida ou sugestão, vocês me encontram nas minhas redes sociais:
GIthub
Reference
이 문제에 관하여(Tipos Primitivos와 Tipos de Referência), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/inando85/tipos-primitivos-e-tipos-de-referencia-67g텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)