자바스크립트는 객체 기반 프로그래밍 언어이다. 그렇다면 객체란 무엇인가?
객체는 0개 이상의 프로퍼티로 구성된 집합으로, 프로퍼티는 key와 value로 구성된다.
{
a: 1, // property
b: function() { // method
console.log("hi");
}
}
객체의 프로퍼티엔 값과 함수 모두 들어갈 수 있다. 값이 함수인 경우에는 method라고 부른다.
리터럴은 사람이 이해할 수 있는 문자나 약속된 기호를 사용해 값을 생성하는 표기법을 말하는데, 자바스크립트에서 객체를 생성하는 가장 일반적인 방법이 객체 리터럴을 사용하는 것이다.
var obj = {
a: 1,
b: function() {
console.log("hi");
}
};
var obj = {
a: 1,
b: function() {
console.log("hi");
}
};
console.log(obj.a); // 1
var obj = {
a: 1,
b: function() {
console.log("hi");
}
};
console.log(obj["a"]); // 1
대괄호 표기법을 사용할 때는 접근 연산자 내부에 지정하는 프로퍼티 키는 반드시 따옴표로 감싼 문자열이어야 한다.
var obj = {
a: 1,
b: function() {
console.log("hi");
}
};
obj.a = 2;
console.log(obj.a); // 2
이미 존재하는 프로퍼티에 값을 할당하면 프로퍼티 값이 갱신된다.
var obj = {
a: 1,
b: function() {
console.log("hi");
}
};
obj.c = 3;
console.log(obj.c); // 3
존재하지 않는 프로퍼티에 값을 할당하면 동적으로 생성되어 추가된다.
var obj = {
a: 1,
b: function() {
console.log("hi");
}
};
delete obj.a; // true
console.log(obj.a); // undefined
delete obj.c; // true;
delete 연산자를 사용하면 객체의 프로퍼티를 삭제할 수 있다.
그런데 객체에 존재하지 않는 값을 삭제해도 에러가 나지 않고 true를 반환한다. 이 점은 주의하길 바란다.