[JavaScript] 표현식과 연산자 - ① 연산자, ② 산술 연산

ognatkwak·2022년 10월 30일
post-thumbnail

표현식과 연산자

표현식이란 어떤 값으로 평가 되는 것. 여기에서 표현식을 평가한다는 말은 표현식의 값과 변수, 함수 등의 값을 바탕으로 식의 값을 계산하는 행위이다.
가장 간단한 표현식은 숫자, 문자열, 논리값 등이다.
또한 연산자를 사용히면 표현식을 조합하여 더욱 복잡한 표현식을 만들어 낼 수 있다.

연산자의 우선순위

2 + 3 + 4
2 + (3 * 4) // -> 14
(2 + 3) * 4 // -> 20

연산자에는 우선순위라는 것이 정해져있고 그룹 연산자 ()를 사용해서 가장 먼저 평가된다.

연산자의 결합법칙

연산자 우선순위에 따라 진행되지만, 우선순위가 같은 연산자가 나열되어 있으면 연산 순서를 연산자 우선순위만으로 결정 할 수 없다.

24 / 6 * 2
( 24 / 6 ) * 2 // -> 8
24 / ( 6 * 2 ) // -> 2

연산자에는 왼쪽과 결합해서 연산할지 아니면 오른쪽과 결합해서 연산할지 결정하는 결합 법칙이 정해져있다.
나눗셈 연산자와 곱셈 연산처럼 연산자의 우선순위가 같을 떄는 왼쪽에서 오른쪽 방향으로 결합한다.

연산자의 부수 효과

변수 값을 바꾸는 표현식은 일반적으로 부수 효과가 있는 표현식이라고 한다.
대입 연산자, 증가 연산자, 감소 연산자, delete가 부수 효과가 있는 연산자이다.


산술 연산

피연산자가 숫자인 연산자이다.

산술 이항 연산자

연산자예제예제의 뜻
+더하기a + ba와 b를 더한 값
-빼기a - ba와 b를 뺀 값
*곱하기a * ba와 b를 곱한 값
/나누기a / ba와 b를 나눈 값
%나머지a % ba와 b를 나눈 나머지 값

주의사항

  1. 정수끼리 나누어도 결과가 부동소수점이 된다.
    7 / 2 // -> 3.5
  2. 나머지 연산자 %의 피연산자는 부동소수점이다.
    15 % 4 // -> 3
    5 % 1.5 // -> 0.5
  3. "+" 연산자는 피연산자 중 하나가 문자열이면 나머지 피연산자를 문자열로 만든다.
    1 + "2month" // -> 12month
  4. 기타
    계산 할 수 없는 경우에는 NaN으로 평가된다. 산술 연산자의 피연산자가 true 이면 1, false와 null이면 0으로 평가된다. undefined이면 NaN으로 평가된다.
    0/0 // -> NaN
    "one" * 1 // -> NaN
    true + true // -> 2
    1 + null // -> 1
    1 + undefined // -> NaN

산술 단항 연산자

연산자예제예제의 뜻
++증가 연산자++aa에 1을 더한 다음에 a 값을 평가한다.
++증가 연산자a++a를 평가한 다음에 a에 1을 더한다.
--감소 연산자a--a에 1을 뺀 다음에 a 값을 평가한다.
--감소 연산자--aa를 평가한 다음에 a에 1을 뺀다.
+아무것도 처리하지 않음+aa와 같은 값으로 평가한다.
-부호 반전-aa의 부호를 반전한 값으로 평가한다.

산술 대입 연산자

연산자예제예제의 뜻
+=a += ba = a + b
-=a -= ba = a - b
*=a *= ba = a * b
/=a /= ba = a / b
%=a %= ba = a % b
sum += data;
sum = sum + data;

이 코드는 같은 표현이다.

profile
💃🏻

0개의 댓글