[JS] 형 변환

KJA·2022년 6월 9일
0

문자형으로 변환

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, 형 변환이 실패합니다.

숫자형으로 변환 시 적용되는 규칙

전달받은값형 변환 후
undefinedNaN
null0
true and false1 과 0
string문자열의 처음과 끝 공백이 제거됩니다. 공백 제거 후 남아있는 문자열이 없다면 0, 그렇지 않다면 문자열에서 숫자를 읽습니다. 변환에 실패하면 NaN이 됩니다.
console.log( Number("   123   ") ); // 123
console.log( Number("123z") );      // NaN
console.log( Number(true) );        // 1
console.log( Number(false) );       // 0

nullundefined은 숫자형으로 변환 시 결과가 다릅니다. null0이 되고 undefinedNaN이 됩니다.

불린형으로 변환

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입니다.

0개의 댓글