이 블로깅은 모던 JavaScript 튜토리얼을 공부하며 적는 글입니다.
모던 JavaScript 튜토리얼
함수나 연산자에 전달되는 값은 대부분 적절한 자료형으로 형변환이 된다.
String(value);
String메서드에 값을 넣어주면 기본적으로 형변환이 가능하다.
하지만 문자형의 경우는 문자형과 다른 타입을 더하는 연산을 할때도 일어난다. 예를들어
let str ='45';
let num = 45;
console.log(str + num); // '4545';
위와 같이 문자열 45와 숫자 45를 더하면 그 결과값은 문자열 4545가 나온다.
문자열에서 더하는 연산자는 앞의 문자열에 뒤의 문자열을 붙여준다.
그리고 DOM을 제어할때 input등 값을 들고오면 문자열로 변환되어 들고와진다.
숫자형은 수학과 관련된 표현식에서 자동으로 변환이 된다.
+를 뺀 나머지 연산자들은 숫자형에서 가능한 연산이기 때문에
자동으로 숫자형으로 형변환 되어 사용된다.
console.log('6' / '3'); // 2(number) console.log(true * true); // 1(number)
위와 같이 문자열과 문자열을 나눴을때와
불린형 끼리 곱하였을 때 등등 그 결과값은 숫자형이 나오게 된다
그리고 명시적 형변환은
Number(value)를 하였을 때 value값을 숫자형으로 명시해서 변환을 할 수 있다.
또한, 숫자가 아닌값을 숫자로 변환을 할 때 NaN(Not A Number)라는 Number타입의 특수한 값이 나온다.
let age = '열살'; Number(age) // age = NaN;
이 형 변환은 논리 연산을 수행할 때 발생합니다.
여기서 우린 크게 falsey한 값과 truthy한 값이 있는데
falsey한값은 8개가 있고 그 나머지는 truthy한 값이다.
falsey한 값
false, 0, " ", null, undefined, NaN, -0, 0ntruthy한 값은 위를 제외한 나머지
어떠한 연산식에 데이터형이 들어갔을때 true와 false로 대체될 수 있고, 그를 대표하는 값들이 위의 값들이다.
if(0); // false if(1); // true if(null); // false if(NaN); // false if('hello'); // true