형 변환들에 대해 알아보겠습니다~
뭔 느낌인지는 이해를 했지만 이걸 그로 설명을 하려니 대략적으로 이해한 저로서는
설명하기 어렵긴 하지만 일단 정리를 해보겠습니다.
const inputYear = "1991";
console.log(Number(inputYear), inputYear);
재미있는 개념을 만들어 보겠습니다.
1991라는 숫자를 String(문자열)으로 만들어 뒀습니다.
이러고 콘솔로그로 출력을 해보면 문자이 그자체 1991로 인식을 하고 있습니다.
그래서 자바스크립트에서는 쓸 필요 없는 기능이지만
Number(inputYear)으로 얘가 숫자라고 인식을 시켜줬습니다.
그러고 비교를 해보니

1991이라는 숫자는 문자라고 작은따옴표도 붙어 있습니다.
console.log(inputYear + 18);
console.log(Number(inputYear) + 18);

숫자로 인식을 시켜주지 않으니 문자에 숫자로 추가된거로 컴퓨터가 이해를 해서
199118이라는 숫자가 나와서 숫자라고 표시를 해줘야 실제로 더하기가 됩니다.
그럼 숫자로 괄호로 묶어버리면 다 숫자처럼 쓸 수 있을까요?
console.log(Number("Jonas"));
console.log(typeof NaN);

문자 Jonas를 숫자라고 말하고 출력을 시켜보니 NaN(Not a Number)가 나옵니다.
숫자는 아니지만 타입은 숫자라고 말은 해주네요.
그럼 숫자를 문자라고 말해줄때는 어떨까요?
console.log(String(23), 23);

위에서 봤듯이 흰색으로 문자로 인식을 하는 앞쪽 23과 숫자 그대로 23이라고 연보라색으로 보여줍니다.
또 다른 형 변환에 대해서 알아보겠습니다.
console.log("23" - "10" - 3);
console.log("23" + "10" + 3);
console.log("23" * "2");
첫번째 문장처럼 23 - 10 - 3은 뭘까요?

당연히 정답은 10이 상식적으로 맞겠죠.
하지만 이게 + 라면 달라집니다.
"23" + "10" + 3 = ?

당연히 정답은 36이여야 하는데 자바스크립트는
23103으로 출력합니다.
큰 따옴표 안에 있는 숫자들을 숫자로 인식하는게 아니라 문자 그대로 인식하고 그대로 출력을 하고 있습니다.
곱셈과 나눗셈은 어떨까요?
console.log("23" * "2", "23" / "2");

뺼셈과 똑같이 원하는 값을 사칙연산을 해서 나옵니다.
마지막으로 퀴즈를 한 번 풀어 보겠습니다.
let n = "1" + 1;
n = n - 1;
console.log(n);
이거에 대한 답은 뭘까요?
답은 10입니다.
문자 1에 1을 추가한 11이라는 숫자가 나오고
n은 11이 됩니다. 거기에 1을 빼고 나니 10이 되니 답은 10입니다!

"9" - "5"; //4
"19" - "13" + "17"; //617
"19" - "13" + 17; // 23
"123" < 57; //undefined
5 + 6 + "4" + 9 - 4 - 2; //1143

4 번째꺼 말고는 다 맞았는데 저걸 문자이자 숫자로 이해하긴 하는건가보다.
아직 이개념이 완전히 이해되진 않았나 보다...
시마이!!