콘텐츠기획자의 IT입문서

자바스크립트에서의 연산자 - 1탄 본문

JavaScript

자바스크립트에서의 연산자 - 1탄

lazy_cat 2022. 6. 24. 17:09

자바스크립트에서의 연산

왼쪽에서 오른쪽으로 순차적으로 진행된다는 점을 명심하자!!

 

 

 

단항 연산자 Unary

= 피연산자를 하나만 받는 연산자. (양수와 음수를 나타내는 +, -)

let x = 1;

x = -x;
alert( x );

 

 

이항 연산자 Binary

= 두 개의 피연산자를 받는 연산자.

let x = 1, y = 3;
alert( y - x );

 

 

삼항 연산자

 


연산자 종류

1) 덧셈 연산자 +
: 대체로 숫자를 더한 결과값을 반환하지만, 이항 연산자 +의 피연산자로 문자열이 전달되면 문자열을 병합한다.
: 두 개의 숫자 뒤에 문자열이 오는 경우, 숫자가 먼저 더해지고, 그 후 더해진 숫자와 문자열과의 병합이 일어난다.
: 단항 연산자로 +를 사용할때, 피연산자가 숫자가 아니라면  숫자형으로의 변환을 하는 역할도 수행한다. (마치 Number(...)처럼)

let apples = "2";
let oranges = "3";

alert( +apples + +oranges ); // 5

2) 뺄셈 연산자 -
: 숫자형만 받는다.

 

3) 곱셈 연산자 *

 

4) 나눗셈 연산자 /

 

5) 나머지 연산자 %

: a%b는 a를 b로 나눈 후 그 나머지 값을 정수로 반환하는 것을 의미함.

 

6) 거듭제곱 연산자  **

: a ** b를 평가하면 a b번 곱한 값이 반환됨. 1/2를 사용하면 제곱근을 구할수도 있음!

7) 할당 연산자 =
: 할당 연산자는 여러 개를 연결할 수도 있다. (a.k.a 할당 연산자 체이닝)
  (하지만 가독성을 위애 줄을 나눠 할당하는 것이 좋다!)
: 할당 연산자를 여러 개 연결한 경우, 평가는 우측부터 진행된다.
let a, b, c;
a = b = c = 2 + 2;

+) 복합 할당 연산자 +=, *=

: 변수에 연산자를 적용하고 그 결과를 같은 변수에 저장해야 할 때 유용하게 사용하는 연산자.

  짧은 문법으로 동일한 연산을 수행할 수 있다!

8) 증가/감소 연산자 ++, --
: 숫자를 하나 늘리거나 줄일때 자주 사용되는 연산.
: 변수에만 사용 할 수 있다. (ex. 5++와 같이 값에 사용하려고 하면 에러 발생)
: 연산자는 변수 앞과 뒤에 올 수 있다. 피연산자 뒤에 올때는 후위형, 앞에 올땐 전위형이라고 한다.
  두 형의 차이는 ++/--의 반환 값을 사용할 때 드러난다.
// 전위형 증가 연산자 : 값을 증가시킨 후의 값.
let number=0;
alert(++number); //1
// 후위형 증가 연산자 : 값을 증가시키지만, 증가 전의 기존값.
let number=0;
alert(number++); //0;

 

 

9) 비트 연산자 Bitwise Operator

: 인수를 32비트 정수로 변환하여 이진 연산을 수행한다.

: 비트 연산자는 저수준(2진 표현)에서 숫자를 다뤄야 할 때 쓰이므로 흔하게 쓰이진 않습니다. (암호를 다뤄야 할 유용)

 

10) 쉼표 연산자 ,

: 여러 표현식을 코드 한 줄에서 평가할 수 있게 해준다.

: 이때 표현식 각각이 모두 평가되지만, 마지막 표현식의 평가 결과만 반환된다.

let a = (1 + 2, 3 + 4);

alert( a ); // 7 (3 + 4의 결과)

 

: 쉼표 연산자는 코드 가독성에 도움이 되지 않으므로, 진짜 필요한 경우에만 사용하는 것을 권장함.

 

 

 


연산자 우선순위

  • 하나의 표현식에 둘 이상의 연산자가 있는 경우, 실행 순서는 연산자의 우선순위에 의해 결정된다.
  • 우선순위 숫자가 클수록 먼저 실행된다.
  • 순위가 같으면 왼쪽부터 시작해서 오른쪽으로 연산이 수행됨.
  • 동일한 기호의 단항 연산자는 이항 연산자보다 우선순위가 더 높다!
17 단항 덧셈 +
17 단항 부정 -
16 지수 **
15 곱셈 *
15 나눗셈 /
13 덧셈 +
13 뺄셈 -
3 할당 =

 

 

 

Comments