라이브러리나 프레임워크의 코드들을 보면 난해한 코드가 많다. 이런 코드를 읽고 테스트 케이스를 함께 살펴보는 것은 코딩 실력을 키우는 데 많은 도움이 된다.
var obj = { a: 1, "b": 2 }; // 일반적인 key 정의
obj.c = 3;
obj['d'] = 4; // [] 를 활용한 키 정의
var e = 'e';
obj[e] = 5; // 변수를 key 로
function f() { return 'f'; }
obj [f()] = 6; // 함수의 결과를 key 로
[]
와 {}
의 차이점
{}안의 key 정의부에서는 코드 실행 불가하지만 []의 내부에서는 코드 실행이 가능
var obj5 = { (true ? "a" : "b"): 1 }; // ❌
var obj5 = { [true ? "a" : "b"]: 1 }; // ES6 👍
obj6[true ? "a" : "b"] = 1; // 👍
자바스크립트에서는 함수와 배열 모두 객체이다. 따라서 key를 사용하여 속성을 할당할 수 있다.
자바스크립트에서는 기본 객체의 메서드나 프로퍼티도 지울 수 있다.
function declaration(함수 선언문)