카테고리 없음

[모던 자바스크립트 Deep Dive] 암묵적 명시적 타입변환

홍순2 2023. 12. 13. 02:13

 

P112쪽 자바스크립트 엔진은 산술 연산자 표현식을 평가하기 위해 산술 연산자의 피연산자 중에서 숫자 타입이 아닌 피연자를 숫자 타입으로 암묵적 타입 변환한다.

 

숫자 타입으로 변환 

1 - '1' // 0
1 * '10' // 10 
1 / 'one' // NaN 


P112쪽 +단항연산자는 피연산자가 숫자 타입의 값이 아니면 숫자 타입의 값으로 암묵적 타입으로 변환
한다.

주의!!! +'' = 0이 됬다고 해서 값이 변경된것은 아니다 ex) 1+'1' = 11(string)이 나온다 


// 문자열 타입 
+'' // 0 
+'0' // 0
+'1' // 1
+'string' // NaN

// 불리언 타입
+null // 0
+undefined // NaN

// 심벌 타입
+Symbol() // TypeError: Cannot convert a Symbol value to a number 

//객체타입
+{} // NaN 
+[] // 0
+ [10,20] // NaN
+ (function(){}) // NaN

 

 

 

P115쪽 표준 빌트인 생성자 함수(String, Number,  Boolean)를 new연산자 없이 호출하는 방법과 빌트인 메서드를 사용하는 방법있다 

 

문자열 타입으로 변환 
String(1); // "1" 
String(NaN); // "NaN"

숫자 타입으로 변환 
Number('0') // 0