반응형
피연산자
연산자가 연산을 수행하는 대상이다.
5 * 2 에는 왼쪽 피연산자가 5와 오른쪽 피연산자가 2, 총 두개의 피연산자가있다.
피연산자는 인수라는 용어로 불리기도한다.
단항연산자
피연산자를 하나만 받는 연산자
let x = 1;
x = -x;
alert( x ); // -1, 단항 마이너스 연산자는 부호를 뒤집습니다.
이항연산자
두 개의 피연산자를 받는 연산자
let x = 1, y = 3;
alert( y - x ); // 2, 이항 마이너스 연산자는 뺄셈을 해줍니다.
- 위와 같이 부호를 반전해주는 단항 마이너스 연산자와 뺄셈에 쓰이는 이항 마이너스 연산자는 기호는 같지만
수행하는 연산이 다르다. 두 연산을 구분하는 기준은 피연산자의 개수이다.
자바스크립트에서 지원하는 수학 연산자
- 덧셈연산자 +
- 뺄셈연산자 -
- 곱셈연산자 *
- 나눗셈 연산자 /
- 나머지 연산자 %
- 거듭제곱 연산자 **
거듭제곱 연산자 **
a ** b 는 a를 b번 곱한 값이 반환된다.
alert( 2 ** 2 ); // 4 (2 * 2)
alert( 2 ** 3 ); // 8 (2 * 2 * 2)
alert( 2 ** 4 ); // 16 (2 * 2 * 2 * 2)
제곱근구하기
alert( 4 ** (1/2) ); // 2 (1/2 거듭제곱은 제곱근)
alert( 8 ** (1/3) ); // 2 (1/3 거듭제곱은 세제곱근)
이항 연산자 + 와 문자열 연결
피연산자로 문자열이 전달되면 문자열을 병합(연결)한다.
let s = "my" + "string";
alert(s); // mystring
- 피연산자중 하나라도 문자열이면 문자열로 변환된다.
alert(2 + 2 + '1' ); // '221'이 아니라 '41'이 출력됩니다.
- 연산은 왼쪽에서 오른쪽으로 순차적으로 진행된다.
연산자의 자동형변환
alert( 6 - '2' ); // 4, '2'를 숫자로 바꾼 후 연산이 진행됩니다.
alert( '6' / '2' ); // 3, 두 피연산자가 숫자로 바뀐 후 연산이 진행됩니다.
숫자형변환 단항 연산자+
피연산자가 숫자가 아닌경우엔 숫자형으로 변환된다.
// 숫자에는 아무런 영향을 미치지 않습니다.
let x = 1;
alert( +x ); // 1
let y = -2;
alert( +y ); // -2
// 숫자형이 아닌 피연산자는 숫자형으로 변화합니다.
alert( +true ); // 1
alert( +"" ); // 0
- 단항덧셈연산자는 Number()와 동일한 일을 할 수 있게 해준다.
let apples = "2";
let oranges = "3";
// 이항 덧셈 연산자가 적용되기 전에, 두 피연산자는 숫자형으로 변화합니다.
alert( +apples + +oranges ); // 5
// `Number(...)`를 사용해서 같은 동작을 하는 코드를 작성할 수 있지만, 더 기네요.
// alert( Number(apples) + Number(oranges) ); // 5
연산자 우선순위
하나의 표현식에 둘 이상의 연산자가 있는 경우, 실행 순서는 연산자 우선순위에 의해 결정된다.
괄호를 사용하여 최고 우선순위로 만들수있다.
동일한 기호의 단항 연산자는 이항 연산자보다 우선순위가 더 높다.
할당연산자
할당연산자는 우선순위가 3으로 아주 낮다.
그래서 계산이 먼저 이뤄지고, 그 결과가 할당되는 이유가 바로 이 때문이다.
let x = 2 * 2 + 1;
alert( x ); // 5
복합 할당 연산자
let n = 2;
n += 5; // n은 7이 됩니다(n = n + 5와 동일).
n *= 2; // n은 14가 됩니다(n = n * 2와 동일).
alert( n ); // 14
let n = 2;
n *= 3 + 5;
alert( n ); // 16 (*=의 우측이 먼저 평가되므로, 위 식은 n *= 8과 동일합니다.)
- 복합 할당 연산자의 우선순위는 할당 연산자와 동일하다.
증감,감소 연산자
숫자를 하나 늘리거나, 줄이는 연산자
증감연산자 ++
let counter = 2;
counter++; // counter = counter + 1과 동일하게 동작합니다. 하지만 식은 더 짧습니다.
alert( counter ); // 3
감소연산자 --
let counter = 2;
counter--; // counter = counter - 1과 동일하게 동작합니다. 하지만 식은 더 짧습니다.
alert( counter ); // 1
- 증감, 감소 연산자는 변수에만 사용할 수 있다.
전위형과 후위형
let counter = 0;
alert( ++counter ); // 1
---------------------------------
let counter = 0;
alert( counter++ ); // 0
- 값을 증가시키고 난 후, 증가한 값을 바로 사용하려면 전위형 증가 연산자를 사용
- 값을 증가시키지만, 증가 전의 기존값을 사용하려면 후위형 증가 연산자를 사용
반응형