[Javascript] 기초 공부 - String, Number

Magit·2020년 5월 28일
0

Javascript

목록 보기
17/17

String, Number 변환하기

javascript 언어 특징 중 하나가 데이터 타입을 신경쓰지 않는다는 것이다. 편하지만 오류가 날 경우가 많아진다.

let a = 10;
a = "나는 string";
console.log(a);

위 코드는 다른 언어에서는 오류가 나지만, javascript 에서는 오류가 나지 않는다.
어느 부분에서 오류가 나냐면, 원래는 변수에 어떤 값을 할당하면 변수의 type이 확정되고, 그 후에는 다른 type의 값을 할당할 수 없다.

let a = '900';  
let b = 350; 
let c = Math.random(); 
let d = '5' + 5; 
console.log(typeof a);
console.log(typeof b);
console.log(typeof c);
console.log(typeof a);
>>> string
>>> number
>>> number
>>> string

console.log('200'+'10');
console.log('200'-'10');
console.log(200+'11');
console.log('200'+11);
console.log('200'-'안녕');
>>> 20010
>>> 190
>>> 20011
>>> 20011
>>> NaN

NaN?
Not a number 라는 뜻이다.
더하기나 빼기가 써있어서 컴퓨터가 숫자인줄 알고 계산하려고 했더니 계산이 불가능하고 이상한 답이 나왔다는 의미

+ 의 경우는 숫자끼리는 물론이고 String 끼리 문자를 연결할 수 있다.
하지만 - 의 경우는 오로지 숫자에만 사용가능하다.

"안녕하세요." - "안녕" = ???

위 코드의 결과는 NaN 이란 결과가 반환된다.

console.log(2019+"2000");
console.log(2019-"2000");

위 코드의 경우 컴퓨터가 +의 양쪽을 보고 하나라도 String이 있으면 문자열로 합쳐버린다.
하지만 - 라면 String의 마이너스는 존재하지 않으므로 양쪽을 Number로 변환해서 계산한다.

위와같은 코드가 잘 작동하긴하지만 오해가 가능한 코드이다. 그렇기에, 계산기 되더라도 최대한 type을 일치시켜서 계산을 해줘야한다.


Number(), toString() 함수

Number() 함수를 사용하면 String에서 Number형으로 전환이 가능하다.

var birthYearInput = "2000";
console.log(typeof birthYearInput);
>>> string

var numberBirthYear = Number(birthYearInput);
console.log(typeof numberBirthYear);
>>> number

Number 함수외에도 parseInt, parseFloat 등이 존재한다.

parseInt("1.901");
>>> 1
parseFloat("1.901");
>>> 1.901
Number("1.901");
>>> 1.901
parseInt("200") + 1;
>>> 201

Number형에서 String형으로 변환하고 싶을 때는 toString() 을 쓴다.

var numberAsNumber = 1234; 
var numberAsString = numberAsNumber.toString();

console.log(numberAsNumber, typeof numberAsNumber);
>>>1234 'number'
console.log(numberAsString, typeof numberAsString);
>>>1234 string

그외에도 연산의 특성을 활용해서 String이나 Number형으로 변환할 수 있다.

var numberAsNumber = 1234; 
var numberAsString = 1234 + "";

console.log(numberAsNumber, typeof numberAsNumber);
>>> 1234 'number'
console.log(numberAsString, typeof numberAsString);
>>> 1234 string

var numberAsNumber = "1234"; 
var numberAsString = numberAsNumber - 0;

console.log(numberAsNumber, typeof numberAsNumber);
>>> 1234 string
console.log(numberAsString, typeof numberAsString);
>>> 1234 'number'
profile
이제 막 배우기 시작한 개발자입니다.

0개의 댓글