<모던 자바스크립트 Deep Dive> 09~10장 타입 변환과 단축 평가, 객체 리터럴 요약
09. 타입 변환과 단축 평가
1) 타입 변환
- 명시적 타입 변환 : 개발자가 의도를 가지고 값의 타입을 변환시키는 것
ex. 여러 방법을 이용하여 문자열, 숫자, 불리언 타입으로 변환시키는 것이 가능
- 암묵적 타입 변환 : 자바스크립트 엔진에 의해 값의 타입이 자동으로 변환되는 것
ex. 맥락에 따라 문자열, 숫자, 불리언 타입으로 변환 일어남
- 타입 변환은 기본적으로 원시 값을 변경하는 것이 아니라 기존 원시 값을 사용해 새로운 원시 값을 생성하는 것임
- 특히, 암묵적 타입 변환은 새로운 타입의 값 생성 후 한 번 쓰고 버림
- 두 가지 타입 변환에서 무엇보다 중요한 것은 타입 변환이 예측 가능해야 한다는 것
2) 단축 평가
- 단축 평가 : 논리곱(&&) 연산자와 논리합(||) 연산자가 논리 연산의 결과를 결정하는 피연산자를 타입 변환하지 않고 그대로 반환하는 특징
- 객체의 프로퍼티를 참조할 때, null 또는 undefined가 변수의 값이면 타입 에러가 발생하지만 단축 평가를 사용하면 평가 가능
- 함수 호출 시, 단축 평가를 사용하여 매개변수의 기본값을 설정하면 에러 방지 가능
- ES11부터, 변수의 값이 null 혹은 undefined인지 확인할 때 옵셔널 체이닝 연산자(?.) 사용 가능
- ES11에서 변수에 기본값을 설정하기 위해 null 병합 연산자(??)를 이용하면 편리함
10. 객체 리터럴
- 객체 : 키와 값으로 구성된 프로퍼티(객체의 상태)와 메서드(프로퍼티 참조하거나 조작가능한 동작)의 집합, 변경 가능한 값
- 객체 리터럴 : 자바스크립트에서, 리터럴을 사용하여 객체를 생성하는 표기법
- 프로퍼티 생성 시 식별자 네이밍 규칙 주의 필요
- 프로퍼티 접근은 마침표 혹은 대괄호 표기법 사용
- 프로퍼티는 값의 생성, 혹은 동적 생성(존재하지 않는 프로퍼티에 값을 할당하여 생성시키는 방법), 삭제가 가능함
- ES6에서는 변수 이름과 프로퍼티 키의 이름이 같을 때 키 생략 가능함
- ES6에서는 문자열 혹은 문자열로 타입 변환할 수 있는 값으로 평가되는 표현식을 이용하면 프로퍼티 키 동적 생성이 가능함
참고 : 도서 <모던 자바스크립트 Deep Dive>