신입 개발자에서 시니어 개발자가 되기까지

[Javascript Deep Dive] 10장 객체 리터럴 본문

책읽기/Javascript Deep Dive

[Javascript Deep Dive] 10장 객체 리터럴

Jin.K 2022. 10. 3. 00:30

1. 객체의 프로퍼티 키에 문자열이나 심벌 값 외의 값은 암묵적으로 문자열로 변환된다.

2. 객체 프로퍼티 접근법

a. 대괄호 접근법의 주의사항

    - 반드시 따옴표로 감싼 문자열일 것.
    - 그렇지 않은 경우 해당 키를 식별자로 인식하고, referenceError가 발생한다. 참고로 객체에 존재하지 않는 프로퍼티에 접근하면, undefined를 반환하고 에러가 발생하지 않는다.
    - key가 변수라면, 대괄호 접근법을 사용해야 한다.

b. 식별자 네이밍 규칙을 준수하지 않은 경우, 대괄호 표기법만을 사용해야한다.

    - 브라우저 환경에서 person.last-name이 NaN이 출력되는 이유 : person.last를 먼저 평가함. => undefined출력. Name은 브라우저 환경에서 전역변수로서 기본값이 빈 문자열이다. 그러므로 last-name은 undefined - '' 이 되는 것임. -는 연산자 -로 인식됨.

3. 객체 프로퍼티 생성

a. 프로퍼티 키 값을 대괄호로 감싸 새로운 프로퍼티를 생성할 수 있다.

b. 빈배열 obj에 obj['name'] : HJ 이렇게 입력하면 obj { name : "HJ" } 가 출력됨.

프로퍼티 키에 문자열이나 심벌 값 외의 값을 사용하면 자바스크립트 엔진은 암묵적으로 타입을 변환시켜 string으로 만든다. key값으로 숫자 리터럴을 사용하면, 타입이 string인 숫자가 key가 됨.