형 변환
함수와 연산자에 전달되는값은 대부분 알맞은 자료형으로 자동변환된다.
이러한것을 형 변환이라고 한다.
또는 의도를 가지고 원하는 타입으로 변환하는 명시적 변환도 형 변환이라고 할 수 있다.
alert(value)에서 value는 문자형이어야 한다.
따라서 다른 형이 들어간다면 자동으로 문자형으로 변환되나.
String(value)로 만들어 전달받은 값을 문자열로 변환할 수도 있다.(명시적 방법)
문자형으로의 변환은 얘측가능하다.
수학과 관련된 함수와 표현식에서 일어난다.
alert("6"/"2"); 의 경우 문자열이 자동으로 숫자형으로 변환되어 연산이 된다.
Number(value)함수로 주어진 value를 숫자형으로 변환할 수 있다.(명시적방법)
숫자 외의 글자(문자)가 들어있는 문자열을 숫자형으로 변환하려 한다면 NaN이라고 나온다.
- Number(undefined) => NaN
- Number(null) => 0
- Number(true) => 1
- Number(false) => 0
- Number(어떤 문자열) => 문자열과 처음과 끝의 공백은 제거되고,
공백 제거 후 남아있는 문자열이 없다면 0 이,
문자열이 남아있다면 이중 숫자를 읽고 변환에 실패한다면(문자열에 숫자가 섞여있는경우) NaN을 반환한다.
숫자 0, 빈문자열, null, undefined, NaN은 false,
그 외의 값은 true가 된다.
일부 언어에서는 문자열"0" 을 false로 취급하기도 하지만 자바스크립트에서는 비어있지 않는 문자열은 언제나 true!!!
참고로 "" 얘는 비어있는 문자열이라 당연히 false이고,
" " 얘는 스페이스가 들어가 비어있지 않은 것으로 보기때문에 true.