JavaScript는 c나 java와 같은 언어에서는 데이터 타입을 정해줘야 하는데,
이 언어는 특별하게 타입을 특별히 정해주지 않아도 된다.
#1
console.log('200'+'10'); //20010
#2
console.log('200'-'10'); //190
#3
console.log(200+'11'); //20011
#4
console.log('200'+11); //20011
#5
console.log('200'-'안녕'); //NaN
#1번의 결과는 문자열 200과 문자열 10이 더해져 20010이 나왔다.
#3번은 숫자 200과 문자열 11이 더해져서 20011이 나왔다.
그렇다면 -(빼기)는 어떨까?
#2번은 문자열 200과 문자열 10 이 빼면 실제로 계산하듯이 190이 된다.
#4번은 문자열 200과 숫자 11이 더해져 또 다시 20011이 나온다.
#5번에는 이상한 결과가 나온다.
-는 오로지 숫자에만 사용되는 연산인데, 숫자가 있는 문자열도 아닌
한글로 된 문자열을 빼려니까 NaN이 나오는 것이다.
컴퓨터는 +양쪽을 보고, 하나라도 Sring이 있다면 양쪽의 값을 모두 숫자로 변환해서 계산해준다.
그런데, -라면 String의 마이너스는 존재하지 않으므로 양쪽의 값을 모두 숫자로 변한해서 계산해준다.
**Number함수를 말고 그 이외에도 parseInt, parseFloat 등이 있다.
parseInt("1.901");
parseFloat("1.901");
Number("1.901");
parseInt("200") + 1;
반대로, String형에서 Number형로 변환하고 싶다면,
var numberAsNumber = 1234;
var numberAsString = numberAsNumber.toString();
console.log(numberAsNumber, typeof numberAsNumber);//1234 'number'
console.log(numberAsString, typeof numberAsString);//1234 string
+연산의 특성을 활용해 아래와 같이 변경도 가능하다.
var numberAsNumber = 1234;
var numberAsString = 1234 + "";
console.log(numberAsNumber, typeof numberAsNumber);//1234 'number'
console.log(numberAsString, typeof numberAsString);//1234 string
-연산의 특성을 활용해서 String형을 Number형으로 변환할 수도 있다.
var numberAsNumber = "1234";
var numberAsString = numberAsNumber - 0;
console.log(numberAsNumber, typeof numberAsNumber);//1234 string
console.log(numberAsString, typeof numberAsString);//1234 'number'