객체:
오류 있
- 프로퍼티 키가 식별자 네이밍 규칙을 준수 X
const yoonho = {
firstName: 'Yoon-ho',
last-name: 'Jung'
}
오류 없
- 빈문자열을 프로퍼티 키로 사용
const obj = {
'': ''
};
console.log(obj);
- 예악어를 프로퍼티 키로 사용
const obj = {
var: '',
function: ''
};
console.log(obj);
- 프로퍼티 키의 중복 선언
const obj = {
name: 'kim',
name: 'lee'
};
console.log(obj);
- 존재 X 프로퍼티에 접근
const obj = {
name: 'lee'
};
console.log(obj.age);
메서드 vs 메서드 아님
const obj = {
name: yoonho,
foo() { return this.name; }
bar: function(){ return this.name; }
}
- 메서드 특)
감상
원시값 vs 객체:
오류 없
var str = 'string';
str[0] = 'S';
console.log(str);
값에 의한 전달 vs 참조에 의한 전달
- 값에 의한 전달에서,
let score = 80;
let copy = score;
score = 100;
- 이래 버리면, score 변수와 copy 변수의 값이 다른 메모리 공간에 저장된 별개의 값.
- 예전엔 당연하다고 생각했는데, 객체 다루고 보니 좀 이상. -> 어차피 같은 값인데, 같은 메모리주소 가지고 있어도 상관 없지 않나?
- 근데 이런 궁금증 갖자 마자, 제조사(브라우저)에 따라, 동작 방식이 다를 수 있어.
- 객체
- 객체 만들고 프로퍼티에 접근하는게, 큰 비용이 들어. (동적 탐색) / 147p
불변성 vs 재할당 불가
감상
- shallow copy vs deep copy
- 딥 카피해야지 쌍둥이 맹키로 다 배끼는게 아닌가? 똑같아야 딥카피 아닌가? -> 섈로우 카피가 참조. 딥카피는 말 그대로.