profile image

L o a d i n g . . .

반응형

형 변환

함수와 연산자에 전달되는 값은 대부분 적절한 자료형으로 자동 변환된다. 이를 형 변환(type conversion)이라고 한다.

alert이 전달받은 값의 자료형과 관계없이 이를 문자열로 변환해서 보여 주는 것과 수학 관련 연산자가 전달받은 값을 숫자로 변환하는 경우가 대표적인 예라고 할 수 있다.

이외에도 전달받은 값을 원하는 타입으로 변환(명시적 변환)해 주는 경우도 있다.

 

문자형으로 변환

alert 메소드는 매개변수로 문자형을 받기 떄문에, alert(value)에서 value는 문자형이어야 한다. 만약 다른 형의 값을 전달받으면, 문자형으로 자동 변환된다.

String(value) 함수를 호출해서 전달받은 값을 문자열로 변환할 수도 있다.

let value = true;
alert(typeof value);    // boolean

value = String(value);  // 변수 value엔 문자열 "true"가 저장된다.
alert(typeof value);    // String

false는 문자열 "false"로, null은 문자열 "null"로 변환되는 것처럼 문자형으로의 변환은 대부분 예측 가능한 방식으로 일어난다.

 

숫자형으로 변환

숫자형으로의 변환은 수학과 관련된 함수와 표현식에서 자동으로 일어난다.

Number(value) 함수를 사용하여 명시적인 변환 또한 가능하다.

alert("6" / "2");   // 3, 문자열이 숫자형으로 변환된 후 연산이 수행된다.

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임에 유의하자.

Number(undefined);  // NaN
Number(null);       // 0
Number(true);       // 1
Number(false);      // 0
Number("  123  ");  // 123, 문자열의 처음과 끝 공백을 제거한다.
Number("123z");     // NaN, "z"를 숫자로 변환하는 데 실패했다.

 

불린형으로 변환

불린형으로의 변환은 논리 연산을 수행할 때 발생한다.

Boolean(value)를 호출하면 명시적으로 불리언 형 변환을 수행할 수 있다.

숫자 0, 빈 문자열, null, undefined, NaN과 같이 직관적으로도 비어 있다고 느껴지는 값들은 false가 된다. 그 외는 전부 true이다.

문자열 "0"은 true인 점에 유의하자. 비어 있지 않은 문자열은 항상 true이다.

Boolean(1);     // 숫자 1 -> true
Boolean(0);     // 숫자 0 -> false

Boolean("hello");   // 문자열 -> true
Boolean("");     // 빈 문자열 -> false
Boolean(" ");       // 문자열 -> true(주의!! 공백은 빈 문자열이 아니다.)

 

 

해당 포스트는 'The Modern JavaScript Tutorial' 문서를 읽으며 개인 백업용으로 메모하였습니다.

javascript.info/

 

The Modern JavaScript Tutorial

We want to make this open-source project available for people all around the world. Help to translate the content of this tutorial to your language!

javascript.info

 

반응형
복사했습니다!