- Tipos primitivos
- Tipos de referência (Objetos)
- Números
- Strings
- Booleans
E também estes tipos são primitivos: null
undefined
symbol
bigint
Tipos primitivos realizam as operações por seu VALOR, isso significa que ao associar uma variável de tipo primitivo a outra, o seu valor será associado. Exemplo:
let minhaString = 'teste';
let outraString = minhaString;
outraString = 'outro teste';
console.log(minhaString); // teste
console.log(outraString); // outro teste
- Dates
- Arrays
- Objetos criados com { }
- Qualquer outro objeto
Tipos de referência realizam suas operações por REFERÊNCIA isso significa que ao associar um tipo de referência a uma nova variável, todas as alterações feitas no novo objeto vão refletir no primeiro objeto. Exemplo:
const meuObj = {
nome: 'Cleiton',
idade: 31,
cidade: 'São Paulo'
};
const outroObj = meuObj;
outroObj.nome = 'João'; // Alterações no outroObj também acontecerão em meuObj
console.log(meuObj.nome); // João
function mudaNomePraCleiton(obj) {
obj.nome = 'Cleiton';
}
mudaNomePraCleiton(meuObj);
console.log(meuObj.nome); // Cleiton
console.log(outroObj.nome); // Cleiton