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
,
undefined
는 NaN
,
true
는 1
, false
는 0
이 출력됩니다.
수학 연산자(+, -, /, %, *, **)는 피연산자로 숫자형만 받기 때문에 숫자형이 아닌 숫자를 받으면 숫자형으로 자동 변환한다.
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이 문자열로 변환되어 문자열끼리의 연결이 이루어진다.