강의 노트/JS

[JS deep dive] 타입 변환과 단축 평가

매망쩔 2023. 3. 23. 04:31

개발자가 의도적으로 값의 타입을 변환하는 것 : 명시적 타입 변환, 타입 캐스팅

개발자의 의도와 상관없이 표현식 평가 동중 자바스크립트 엔진에 의해 변환되는 경우 : 암묵적 타입 변환, 타입 강제 변환

 

타입변환은 원시값 변화가 아닌 기존 윈시값을 사용해 다른 타입의 새로운 원시값을 생성함

 

암묵적 타입변환 쓰는 이유 : 코드가 더 간결하고 이해하기 쉬움

 

문자타입으로변환

피연산자 중 하나 이상이 문자열인 경우, 탬퍼럴 티러럴의 표현식 삽입

 

숫자 타입으로 변환

산술 연산자의 역할은 숫자 값으로 만드는 것. 산술 연산자의 모든 피연산자는 코드 문맥상 모두 숫자 타입이어야 함.

숫자 타입으로 변환할 수 업슨ㄴ 경우 산술 연산 수행이 불가능 함으로 NaN

 

+ ""  // 0

+ '0' // 0

+ '1' // 1

 

불리언 타입으로 변환

 

if문이나 제어문 또는 삼항 조건 연산자의 조건식은 불리언 타입이 됨

불리언이 아닌 값은 true , false가 되는 falsy값 : false, undefined, null, 0. -0. NaN , ""

 

 

명시적 타입 변환 

문자열 타입으로 

1) String 생성자 함수를 new 연산자 없이 호출하는 방법

2)Object.prototype.toString 메서드

3) 문자열 연결 연산자 이용

 

숫자 타입으로 

1) Number 생성자함수를 new 연산자 없이 호출

2)parseInt, parseFloat 함수를 사용(문자열만 가능)

3) + 단항 산술 연산자를 이용

4)*산술 연산자를 이용

 

불리언 타입으로

1) Boolean 생성자 함수를 new연산자 없이호출

2) !부정 논리 연산자를 두번 사용

 

단축 평가

논리 연산자를 사용한 단축 평가 : 논리 연산자들은 논리 연산의 결과를 결정하는 피연산자를 타입 변환하지 않고 그대로 반환하는 것

 

평가 결과가 확정된 경우 나머지 평가 과정을 생략함

 

|| 의 경우 첫 번째, &&의 경우 두 번째 피연산자

 

단축평가가 유용한 경우

 

1. 객체를 가리키기를 기대하는 변수가 null 또는 undefined가 아닌지 확인하고 프로퍼티를 참조할 때

2. 함수 매개변수에 기본값을 설정할 

 

옵셔널 체이닝 연산자

 

좌항의 피연산자가 null 또는 undefined인 경우 undefined를 반환하고, 그렇지 않으면우항의 프로퍼티 참조

논리 연산자를 이용한 단축평가와의 차이점 : &&와 다르게 Falsy 값도 우항의 프로퍼티 참조를 함

 

null 병합 연산자

좌항이 null 또는 undefined인 경우 우항의 피연산자 반환, 그렇지 않으면 좌항의 피연산자를 반환

(변수에 기본값 설정할 때 유용함)

논리 연산자를 이용한 단축평가와의 차이점 :  || 대용으로 사용하나, Falsy값도 좌항의 프로퍼티 참조함

'강의 노트 > JS' 카테고리의 다른 글

[JS deep dive] 11장 원시값과 객체의 비교  (0) 2023.03.27
[JS deep dive]객체 리터럴  (0) 2023.03.27
[JS deepdive] 제어문  (3) 2023.03.23
[JS deep dive] 연산자  (0) 2023.03.22
[JS deep dive] 데이터 타입  (0) 2023.03.21