자바스크립트는 객체 기반의 프로그래밍 언어이며 , 자바스크립트를 구성하는 거의 모든 것은 객체다.
인스턴스 : 클래스에 의해 생성되어 메모리에 저장된 실체
객체는 클래스와 인스턴스를 포함한 개념이다. 인스턴스는 객체가 메모리에 저장되어 실제로 존재하는 것에 초점을 맞춘 용어이다.
객체는 프로퍼티의 집합이며, 프로퍼티는 키와 값으로 구성된다.
프로퍼티 키는 프로퍼티 값에 접근할 수 있는 이름으로 식별자 역할을 한다. 식별자 네이밍 규칙을 따라야 하는 것은 아니지만, 식벽자 규칙을 따르지 않은 이름의 키에 접근 할 경우 반드시 따옴표를 사용해야 한다.
let obj = {firstName:"PARK","last-name":"wan"};
obj.firstName; // "PARK"
obj.last-name; // NaN // 자바스크립트 엔진이 '-'를 연산자가 있는 표현식으로 해석한다.
Obj['last-name']; // 'wan'
객체에 존재하지 않는 프로퍼티에 접근하면 ReferenceError 가 아닌 undefined를 반환한다.
ES6에서는 프로퍼티 값으로 변수를 사용하는 경우 변수 이름과 프로퍼티 키가 동일한 이름일 때 프로퍼티 키를 생략 할 수 있다. 이때 프로퍼티 키는 변수 이름으로 자동 생성된다.
let x =1 y=2;
//프로퍼티 축약 표현
const obj = {x,y};
console.log(obj); // {x:1,y:2}