TIL -18. JavaScript : Number

이지연·2020년 7월 27일
0

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: Not a number, 계산이 불가능하고 이상한 답이 나왔다는 뜻

-는 오로지 숫자에만 사용되는 연산인데, 숫자가 있는 문자열도 아닌
한글로 된 문자열을 빼려니까 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'
profile
Everyday STEP BY STEP

0개의 댓글