숫자 계산과 값을 저장하는 대입을 먼저 구분합니다. 식을 평가한 결과와 변수에 남는 값이 다를 수 있습니다.
node example.mjs로 실행합니다. 브라우저 API를 사용하지 않는 ES 모듈 예제입니다.
let n = 7;
console.log(n + 2, n - 2, n * 2, n / 2, n % 2, n ** 2);
n += 3;
console.log(n++ , n);
console.log(2 + 3 * 4, (2 + 3) * 4);
console.log("7" + 2, Number("7") + 2);9 5 14 3.5 1 49
10 11
14 20
72 9
Number의 /는 정수 나눗셈이 아닙니다. +는 문자열 연결에도 쓰이므로 입력을 숫자로 바꿔야 할 수 있습니다. 후위 n++는 증가 전 값을 반환합니다. 한 식에 여러 증감을 섞지 마세요. 부동소수점에는 오차가 있고 Number의 0 나눗셈은 Infinity 또는 NaN을 만들 수 있습니다.
| 분류 | 문법 | 의미 |
|---|---|---|
| 산술 | + - * / % ** |
사칙·나머지·거듭제곱 |
| 대입 | = += -= *= /= %= **= |
저장·복합 대입 |
| 증감 | ++ -- |
1 증가·감소 |
| 그룹 | (식) |
계산 순서 명시 |
n을 음수로 바꾸어 %의 부호를 확인하고, 입력 문자열이 숫자가 아닐 때 Number.isNaN으로 검사하세요.