함수에 전달되는 값은 적절한 자료형으로 변환해야합니다. 그렇기 위해 Javascript 말고도 다른 언어들도 형변환이 중요합니다.
예를 들어 alert와 같은 매개변수로 문자형을 받기 때문에 값들을 받을 때 문자형으로 변환이 필요합니다.
let value = null;
alert(typeof(value)); // object;
value = String(value)
alert(typeof(value)); // string;
위와 같이 String(value) 함수를 호출하여 전달받은 값을 문자열로 반환할 수 있습니다.
Javascript에서 숫자형 변환은 수학과 관련된 함수 및 표현식에서 자동으로 일어납니다.
// 1.
console.log(typeof("6"/"2")); // number
// 2.
let str = "123";
console.log(typeof(str)); // string
let num = Number(str);
console.log(typeof(num)); // number
위의 1번 예시를 보면 수학과 관련된 연산을 통해 문자열이 숫자열로 자동변환되어 연산이 수행되는 것을 알 수 있습니다.
위의 2번 예시는 함수를 이용해 숫자로 바꾸어주는 예시입니다.Number() 함수를 사용해 주어진 값을 숫자형으로 명시하여 변환할 수 있습니다.
하지만 Number() 함수를 통해 문자열을 숫자형으로 변환하려하는데 숫자 이외의 글자가 들어 있스면 다음의 3번 예시와 같이 결과가 NaN이 됩니다.
let value = Number('숫자형으로 변환 123');
console.log(value); // NaN
console.log(typeof(value)); // number
다음은 숫자형 변호나이 되는 예시입니다. (이후 추가 예정)
console.log(Number(" 123 ")); // 123
console.log(Number("123z")); // NaN ( 'z'는 숫자 변환이 실패함.)
console.log(Number(undefined)); // NaN
console.log(Number(true)); // 1
console.log(Number(false)); // 0
console.log(Number(null)); // 0
예외 : 숫자형 변환 시 undefinded는 0이 아니라 NaN 이 됩니ㅏㄷ.
논린 연산을 수행할 때 발생합니다.
Boolean(value)를 호출하면 불리언으로의 형 변환을 수행할 수 있습니다.
console.log(Boolean(1)); // true
console.log(Boolean(0)); // false
console.log(Boolean(undefined)); // false
console.log(Boolean(NaN)); // false
console.log(Boolean(null)); // false
console.log(Boolean("")); // false
console.log(Boolean("123")); // true
console.log(Boolean("0")); // true
console.log(Boolean(" ")); // true
예외 : 마지막 예시를 보았을 때 Javascript에서는 문자열 "0" 또는 " "(공백이 존재하는 문자열)은 true 입니다
위와 같은 형변환의 규칙들과 예외들을 어느정도 기억하고 있어야 실무에서도 놓치는 부분 없이 시간을 단축해 프로그래밍을 할 수 있습니다.
~~예외들은 프로그래밍하면서 생기는 대로 추가할 예정입니다.
~~