형 변환(type conversion)

MinCheol-Sin·2022년 7월 2일
1
post-thumbnail

22/07/02 학습내용 정리


형 변환

함수나 연산자에 전달되는 값은 대게 적절한 자료형으로 자동 변환된다.

예를 들어 alert 메서드는 전달받은 값을 자동으로 문자열로 변환하여 보여주는 것이나, 나누기 연산자나 곱셈 연산자가 전달 받은 인수를 숫자로 변환하여 인식하는 것 등이 있다.


문자형으로 변환

문자형으로 변환하는 함수는 String()이다.

let age = 26;

alert(typeof age);  // number

age = String(age);  // 숫자 26을 문자열 "26"으로 변환

alert(typeof age);  // string

숫자형으로 변환

숫자형으로 변환하는 함수는 Number()이다.

let str = "123";

alert(typeof str);  // string

str = Number(str);  // 문자열 "123"을 숫자 123으로 변환

alert(typeof str);  // number

숫자가 아닌 글자를 숫자형으로 변환하려고 하면 NaN이 출력됩니다.

let hello = "안녕하세요123";

hello = Number(hello);

alert(hello);  // NaN

추가적으로 null을 숫자형으로 변환하면 0,
undefinedNaN,
true1, false0이 출력됩니다.


수학 연산자

수학 연산자(+, -, /, %, *, **)는 피연산자로 숫자형만 받기 때문에 숫자형이 아닌 숫자를 받으면 숫자형으로 자동 변환한다.

let x = "7" - "2";  // 5

let y = 14 / "2";  // 2

let z = "3" ** 3;  // 27

이항 덧셈 연산자 +

이항 덧셈 연산자 (+)는 예외로 문자열을 연결하는 기능을 갖는다.
이항 덧셈 연산자 (+)는 문자형을 피연산자로 받을 수 있어, 피연산자 둘 중 하나가 문자형이면 다른 하나도 자동으로 문자형으로 변환한다.
그 후, 문자열끼리 연결한다.

let addCalculator = "21" + 3;  // 213
let test = 'my' + 'name';  // myname

조금 더 복잡한 계산식을 도출하면 아래와 같다.

alert(2 + 1 + "5");  // 35

2 + 1 에서 피연산자 2와 1은 둘 다 숫자형이므로 덧셈 계산이 이루어져 3이 된다.
그 후 3 + "5" 에서 "5" 가 문자형이므로 덧셈이 3이 문자열로 변환되어 문자열끼리의 연결이 이루어진다.

profile
천천히, 그러나 앞으로

0개의 댓글