티스토리 뷰
암묵적 타입 변환
개발자의 의도와는 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 암묵적으로 타입이 자동으로 변환
var x = 10;
// 암묵적 타입 변환
var str = x + '';
console.log(typeof str, str); // string 10
자바스크립트 엔진에 의해 암묵적으로 일어나기 때문에 코드에 타입 변환 의지가 드러나지 않는다.
∴ 타입 변환에 대해 예측 가능해야 한다.

명시적 타입 변환
개발자의 의도에 의해 타입을 바꾸는 방법이다.
- 표준 빌트인 생성자 함수(String, Number, Boolean)를 new 연산자 없이 호출
- 빌트인 메서드 사용
- 암묵적 타입 변환 사용
표준 빌트인 생성자 함수(String, Number, Boolean)를 new 연산자 없이 호출
Number('0'); // 0
Number('-1'); // -1
Number(false); // 0
빌트인 메서드 사용
(1).toString(); // "1"
(true).toStirng(); // "true"
암묵적 타입 변환 사용
'10' + 2 // '102'
5 * '10' // 50
단축 평가
표현식을 평가하는 도중에 평가 결과가 확정된 경우 나머지 평가 과정을 생략하는 것을 말한다.
다음 세 가지 방식이 있다.
- 논리 연산자
- 옵셔널 체이닝 연산자
- null 병합 연산자
(1) 논리 연산자
'Cat' && 'Dog' // 'Dog'
'Cat' || 'Dog' // 'Cat'
&& 연산자는 두 개 모두 True로 평가되어야 한다.
Cat은 True니 뒤에 Dog도 평가해야 한다.
위 && 연산자 식에서 평과 결과가 확정 나는 부분은 'Dog'이다.
그렇지만 || 연산자 식에서 평과 결과가 확정 나는 부분은 'Cat'이다.
||은 하나만 True여도 True를 반환하기 때문이다.
(2) 옵셔널 체이닝 연산자
var elem = null;
var value = elem?.value;
console.log(value) //undefined
옵셔널 체이닝 연산자 ?.는 좌항의 피연산자가 null or undefined인 경우 undefined 반환
아니면 우항의 프로퍼티 참조
위 옵셔널 체이닝 연산자에서는 좌항이 null이므로 undefined 반환
(3) null 병합 연산자
var foo = 0;
console.log(foo ?? 10); // 0
var foo = 0;
console.log(foo || 10); // 10
null 병합 연산자 ??는 좌항의 피연산자가 null or undefined인 경우 우항의 피연산자 반환
아니면 좌항의 피연산자 반환
null 병합 연산자 ||는 좌항의 피연산자가 Falsy인 경우 우항의 피연산자 반환
아니면 null or undefined가 아니라면 좌항의 피연산자 그대로 반환
하트 누르면 위 내용 전부 기억하게 됩니다.
'WEB > 자바스크립트' 카테고리의 다른 글
[모던 자바스크립트 Deep Dive] 11장 : 원시 값과 객체의 비교 - JS (0) | 2021.08.28 |
---|---|
[모던 자바스크립트 Deep Dive] 10장 : 객체 리터럴 - JS (0) | 2021.08.28 |
[모던 자바스크립트 Deep Dive] 8장 : 제어문 - JS (0) | 2021.08.21 |
[모던 자바스크립트 Deep Dive] 7장 : 연산자 - JS (2) | 2021.08.21 |
[모던 자바스크립트 Deep Dive] 6장 : 데이터 타입 - JS (0) | 2021.08.21 |
- Total
- Today
- Yesterday
- CPP
- 그리디
- 쉽게배우는자바프로그래밍
- 파이썬
- Web
- 알고리즘
- 자바
- 정리
- 백준
- 우종정
- OS
- py
- 프로그래머스
- 구현
- 운영체제
- 자바스크립트
- Python
- 쉽게 배우는 자바 프로그래밍
- 답
- 해답
- 쉽게배우는
- java
- JS
- 풀이
- 정답
- 연습문제
- C++
- 정렬
- BFS
- 문자열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |