String(value)
함수를 호출해 전달받은 값을 문자열로 변환 할 수도 있습니다.
let value = true;
alert(typeof value); // boolean
value = String(value); // 변수 value엔 문자열 "true"가 저장됩니다.
alert(typeof value); // string
숫자형으로의 변환은 수학과 관련된 함수와 표현식에서 자동으로 일어납니다.
console.log('6'/'3') // 2, 문자열이 숫자형으로 자동변환된 후 연산이 수행됩니다.
Number(value)
함수를 사용하면 주어진 값(value)을 숫자형으로 명시해서 변환할 수 있습니다.
let str = "123";
alert(typeof str); // string
let num = Number(str); // 문자열 "123"이 숫자 123으로 변환됩니다.
alert(typeof num); // number
숫자 이외의 글자가 들어가 있는 문자열을 숫자형으로 변환하려고 하면, 그 결과는 NaN
이 됩니다.
let age = Number("임의의 문자열 123");
alert(age); // NaN, 형 변환이 실패합니다.
전달받은값 | 형 변환 후 |
---|---|
undefined | NaN |
null | 0 |
true and false | 1 과 0 |
string | 문자열의 처음과 끝 공백이 제거됩니다. 공백 제거 후 남아있는 문자열이 없다면 0, 그렇지 않다면 문자열에서 숫자를 읽습니다. 변환에 실패하면 NaN이 됩니다. |
console.log( Number(" 123 ") ); // 123
console.log( Number("123z") ); // NaN
console.log( Number(true) ); // 1
console.log( Number(false) ); // 0
null
과 undefined
은 숫자형으로 변환 시 결과가 다릅니다. null
은 0
이 되고 undefined
는 NaN
이 됩니다.
Boolean(value)
를 호출하면 명시적으로 불리언으로의 형 변환을 수행할 수 있습니다.
0
, 빈 문자열, null
, undefined
, NaN
과 같이 직관적으로도 “비어있다고” 느껴지는 값들은 false
가 됩니다.true
로 변환됩니다.console.log(Boolean(1)); // 숫자 1(true)
console.log(Boolean(0)); // 숫자 0(false)
console.log(Boolean("hello")); // 문자열(true)
console.log(Boolean("")); // 빈 문자열(false)
❗ 주의
문자열"0"
은true
입니다.
PHP 등의 일부 언어에선 문자열 "0"을 false로 취급합니다. 그러나 자바스크립트에선비어 있지 않은 문자열
은 언제나true
입니다.