연산자 우선순위 이해하기
2 + 3 * 4; // 14
자바스크립트도 수학의 사칙연산 우선순위를 따르기 때문에 곱하기가 더하기 연산자보다 우선순위가 높다. 우선순위 높다는 것은 먼저 실행됨을 의미한다. 3 * 4가 먼저 실행되어 12가 되고, 그다음에 2를 더해 14가 되는 것이다.
더하기 보다 곱하기 먼저 하고 싶다면 수학에서처럼 소괄호를 감싸면 된다. 소괄호도 연산자이다.
(2 + 3) * 4; // 20
🌈 우선순위를 잘 모르겠다면 괄호 ( ) 를 치자.
다만 자바스크립트에서 중괄호({}), 대괄호([])는 수학과는 다른 의미이기 때문에 연산자 우선순위를 바꿀 때는 사용하지 않는다.
우선순위가 같을 때는 왼쪽에서 오른쪽으로 실행된다.
1분 퀴즈
3 ** 2 + 1를 27로 만들어 보세요.
답 : 3 ** ( 2 + 1 );
실수 계산 시 주의할 점
0.1 + 0.2; // 0.30000000000000004
컴퓨터는 0과 1밖에 알지 못한다. 2진법으로 실수를 표현하면 무한 반복되는 실수가 있어서 어쩔 수 없이 근삿값으로 저장한다. 그래서 우리가 사용하는 10진법으로 계산한 결과와 차이가 발생하는 경우가 생긴다. 바로 이게 대부분의 프로그래밍 언어가 겪고 있는 부동소수점 문제이다.
부동소수점 문제 해결방법
가장 간단한 방법은 실수를 정수로 바꿔서 계산한 뒤, 마지막에 다시 실수로 바꾸는 것
(0.1 * 10 + 0.2 * 10) / 10; // 0.3
'강의 정리 > 제로초 자바스크립트' 카테고리의 다른 글
🔖 2-7. 논리연산자 (0) | 2023.02.27 |
---|---|
🔖 2-6. 불 값(boolean, 값들의 비교) (0) | 2023.02.27 |
🔖 2-4. 숫자 기본 (parseInt, NaN) (0) | 2023.02.27 |
🔖 2-3. 문자열 합치기(연산자) (0) | 2023.02.27 |
🔖 2-2. 문자열 기본 (따옴표,백틱,typeof,escape) (0) | 2023.02.27 |