primitive type (원시값) : JavaScript에서 원시값이란?
객체가 아니면서 메서드도 가지지 않는 데이터를 말한다.
모든 원시 값은 불변하여 변형할 수 없다.
원시 값 자체와, 원시값을 할당한 변수를 혼동하지 않는 것이 중요.
string
number
bigint
boolean
undefined
symbol
null
let bar = "apple"
bar.toUpperCase();
console.log(bar) // "apple"
let foo = "orange"
foo = foo.toUpperCase(); // ORANGE
-> 원시값을 교체할 수는 있지만, 직접 변형 할 수는 없다.
함수들 내부의 모든 변경은 그 복사본으로 작업하였기 때문에, 원본에 전혀 영향을 주자 않았다.
이것이 원시 값이 변하지 않는 이유
원시 값에 직접 작업하지 않으므로, 원본을 건드리지 않고 복사본을 가져와 작업한다.
[출처: mdn web docs]
Reference type:
메모리에 값을 주소로 저장하고, 출력시 메모리 주소와 일치하는 값을 출력한다.
대표적인 Reference type
object : {foo: "bar"}
array : [1, 2, 3, 4]
function (object) : function foo () {}
class : class foo {}
대입 연산자를 이용해 사용
const x = {count: 100}
const y = x
y.count = 99
console.log(y) // 99
Primitive Type : 데이터의 실제 값 할당
Reference Type : 데이터의 위치 값만 할당