10장 객체 리터럴

 

객체는 변경 가능한 값.

 

 

10.2 객체 리터럴에 의한 객체 생성

 

var person = { name : 'Lee', age : 31 };

* 객체 리터럴의 중괄호는 코드블록을 의미하지 않는다.

객체 리터럴은 값으로 평가되는 표현식이다. 따라서 세미콜론을 붙여야 한다.

 

 

10.3 프로퍼티

객체는 프로퍼티의 집합이며, 프로퍼티는 키와 값으로 구성된다.

 

프로퍼티 키 : 빈 문자열을 포함하는 모든 문자열 또는 심벌 값 (키는 문자열이라고 생각하면 될듯)

프로퍼티 값 : 자바스크립트에서 사용할 수 있는 모든 값

 

프로퍼티 키에 문자열이나 심벌 값 외의 값을 사용하면 암묵적 타입 변환을 통해 문자열이 된다.

이미 존재하는 프로퍼티 키를 중복 선언하면 나중에 선언한 프로퍼티가 먼저 선언한 프로퍼티를 덮어쓴다.

 

10.6 프로퍼티 값 갱신

이미 존재하는 프로퍼티에 값을 할당하면 프로퍼티 값이 갱신된다.

 

var person = { name : 'Lee' };

person.name = 'Kim';

console.log(person); // {name:"Kim"}

 

10.7 프로퍼티 동적 생성

존재하지 않는 프로퍼티에 값을 할당하면 프로퍼티가 동적으로 생성된다.

var person = { name : 'Lee' };

person.age = 20;

console.log(person); // {name : "Lee", age: 20}

 

10.8 프로퍼티 삭제

delete 연산자는 객체의 프로퍼티를 삭제한다.

delete person.age;

 

 

 

11장 원시 값과 객체의 비교

 

원시 값은 변경 불가능한 값.

객체는 변경 가능한 값.

 

 

11.1 원시 값

 

원시 값은 변경 불가능한 값, 즉 읽기 전용 값이다.

상수는 재할당이 금지된 변수

 

문자열은 원시값이므로 변경할 수 없다.

 

참조값은 다른 메모리 공간에 별개로 저장된다.

 

변수에는 값이 전달되는 것이 아니라 메모리 주소가 저장된다.

 

변수는 메모리 주소를 기억한다

 

 

11.2 객체

객체는 변경가능한 값이다.

 

따라서 객체를 할당한 변수는 재할당 없이 객체를 직접 변경할 수 있다.

 

var person = {name:'Lee'};

person.name = 'Kim';
person.address = 'Seoul';

console.log(person); // {name: "Kim", address: "Seoul"}

 

11.2.2 참조에 의한 전달

객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조값이 복사되어 전달된다.

즉, 주소가 복사된다.

 

 

+ Recent posts