상세 컨텐츠

본문 제목

[JS] 숫자 더하기

개발/ETC

by 대충고양이짤 2022. 2. 17. 18:23

본문

Javascript는 변수의 타입을 지정하지 않고 값에 따라서 자동으로 타입이 결정되기 때문에 조금 잘못하면 생각했던 결과가 나오지 않는다. 이러한 특징은 동적 타이핑(Dynamic typing)이라고 하며 관련 언어로는 javascript, python, php 등이 있다.

숫자를 더해보자

const month = 3000;
const week = 70;
const day = 1;
//number 타입의 값이기 때문에 덧셈에 문제가 없다.
//하지만 정신을 잠깐 놓아버리면

console.log("result : " + month + week + day);

//result : 300701
//아무 생각없이 쓰다보면 이상한 구렁텅이에 빠지게 된다.
//로그를 찍을때 result 라는 문자열에 숫자가 더해지게 되어 모두 문자열로 취급한다
const month = 300;
const week = 70;
const day = 1;

console.log(month + week + day);
//371
//이전에 있던 result라는 문자열을 빼면 모두 숫자로 취급하여 덧셈이 수행된다
const month = 300;
const week = 70;
const day = "1"; //문자열

console.log(month + week + day);
//3701
//왼쪽에 있는 month, week가 먼저 계산되는데 숫자로 합산(370)되고, 이 결과값과 문자열인 day는 모두 문자열로 취급된다

확실히 하기

typescript를 사용하면 number 타입이라는 것을 명시하고 문자열에 붙이지 않게 조심해야 한다.
사실 별거 아닌 내용인데 한시간 동안 저걸로 삽질하고 있어서 기록해본다.

관련글 더보기

댓글 영역