원시 값(함수,배열,정규 표현식)을 제외하고 모든 값이 객체라고 생각하면 된다.
객체는 참조타입으로 변경 가능한 값(mutable value)이다. 객체는 key와 value로 이루어져 있다.
//여기서 key값은 name,age 이고 value값은 jisoo,26이다.
var person={
name:'jisoo'
age:26
}
객체는 프로퍼티의 집합이며 프로퍼티는 키와 값으로 구성된다. 키의 경우 식별자 네이밍 규칙을 준수해야 한다.
var person={
// 프로퍼티 key는 name 값은 jisoo
name:'jisoo'
// 프로퍼티 key는 age 값은 26
age:26
}
프로퍼티의 키값이 식별자 네이밍을 준수한다면 두 가지 표기법으로 프로퍼티에 접근이 가능하다. 식별자 네이밍을 준수하지 않을 경우 대괄호 표기법만으로만 접근이 가능하다. 또 대괄호 표기법을 사용 할 경우 프로퍼티 키는 반드시 따옴표로 감싼 문자열이어야 한다.
var person = {
name: 'jisoo'
};
// 마침표 표기법에 의한 프로퍼티 접근
console.log(person.name); // jisoo
// 대괄호 표기법에 의한 프로퍼티 접근
console.log(person['name']) ; // jisoo
이미 존재하는 프로퍼티에 값을 할당하면 값이 갱신된다.
var person = {
name:'jisoo';
};
person.name = 'Kim'
console.log(person) // {name:'kim'}
존재하지 않는 프로퍼티에 값을 할당하면 값이 할당된다.
var person = {
name:'jisoo';
};
person.age = 26
console.log(person) // {name:'kim',age:26}
존재하지 않는 프로퍼티에 값을 할당하면 값이 할당된다.
var person = {
name:'jisoo';
};
person.age = 26
console.log(person) // {name:'kim',age:26}
존재하는 프로퍼티를 삭제 할 때에는 delete 연산자를 사용하면 된다.
var person = {
name:'jisoo',
age:26
};
delete person.name
console.log(person) // {age:26}