숫자와 연산자
사칙연산과 나머지, 증감, 연산 우선순위를 봅니다.
계산에 사용하는 기호
JavaScript 에는 정수와 소수를 나누는 구분이 없습니다. 둘 다
number 하나입니다. 계산에 사용하는 기호는 다섯
가지입니다.
+더하기 ·-빼기*곱하기 ·/나누기%나머지
다섯 가지 계산
console.log(7 + 2); console.log(7 - 2); console.log(7 * 2); console.log(7 / 2); console.log(7 % 2);
넷째 줄을 보세요. 7 / 2 가
3 이 아니라 3.5 입니다.
나눈 몫만 필요하다면 아래에서 다루는 방법을 사용합니다.
나머지의 쓸모
% 는 나눈 뒤 남는 값입니다. 홀수와 짝수를 가릴 때
자주 사용합니다.
console.log(10 % 2); console.log(11 % 2); console.log(10 % 3);
2 로 나눈 나머지가 0 이면
짝수입니다.
초를 분과 초로 나누기
Math.floor 는 소수점 아래를 버립니다. 몫은
Math.floor, 나머지는 % 로
얻습니다.
const total = 197; const minutes = Math.floor(total / 60); const seconds = total % 60; console.log(`${minutes}분 ${seconds}초`);
1씩 늘리고 줄이기
count = count + 1 은 자주 나오는 코드라 짧게 적는
방법이 따로 있습니다.
let count = 0; count++; console.log(count); count += 5; console.log(count); count--; console.log(count);
+= 는 -= ·
*= · /= 처럼 다른
기호에도 같은 방식으로 사용할 수 있습니다.
계산 순서
곱하기와 나누기가 더하기와 빼기보다 먼저입니다. 순서를 바꾸려면 괄호를 사용합니다.
console.log(2 + 3 * 4); console.log((2 + 3) * 4);
헷갈릴 것 같으면 괄호를 적으세요. 없어도 되는 괄호가 읽는 사람에게는 도움이 됩니다.
처음에 자주 걸리는 것
0.1 + 0.2 는
0.3 이 아니라
0.30000000000000004 입니다. 컴퓨터가 소수를 담는
방식 때문이며 JavaScript 만의 일이 아닙니다. 돈처럼 정확해야 하는 값은 원 단위
정수로 다루는 방법을 씁니다.
오류가 나지 않고 Infinity 가 나옵니다. 계산 결과가
이상하면 나누는 값이 0이 아닌지 확인하세요.
숫자로 바꿀 수 없는 글자를 계산하면 NaN 이
나옵니다. Not a Number 의 줄임말입니다.
console.log(Number("스물일곱") + 3); // NaN
직접 해보기
7325 초를
2시간 2분 5초 형태로 출력하세요.
가격 18000 원에 15% 할인을 적용한 금액을
출력하세요. 소수점이 나오면 Math.floor 로 버립니다.
이 단원의 정리
- 정수와 소수의 구분이 없습니다. 모두
number입니다. /는 소수까지 냅니다. 몫만 필요하면Math.floor를 사용합니다.%는 나머지입니다. 홀짝을 가릴 때 사용합니다.count++와count += 5로 짧게 적습니다.- 곱하기·나누기가 먼저입니다. 헷갈리면 괄호를 적습니다.