연산자

김하은·2023년 4월 20일
0

기본연산자 +, -, *
자바스크립트에서만 제공하는 연산자가 있다.

단항: 연산을 수행하는 대항인 피연산자를 하나만 받는 연산자.

let x = -1
x = -x
alert(x) ; // -1

피연산자는 인수(argument)라는 용어로 불리기도 한다.

5 * 2 는 연산자가 연산을 수행하는 대상이 둘이다.
두개의 피연산자를 받는 연산자는 이항연산자 라고 한다.

자바스크립트의 수학연산자

+ 덧셈 연산자
- 뺄셈 연산자
* 곱셈 연산자
/ 나눗셈 연산자
% 나머지 연산자
** 거듭제곱 연산자
= 할당 연산자
++ 증가 연산자 (1을 증가시킴)
-- 감소 연산자 (1을 감소시킴)
주의: 증가, 감소 연산자는 변수에만 사용할 수 있다.!!
증가 , 감소 연산자응 다른 대부분의 산술 연산자 보다 우선순위가 높다.

나머지 연산자. a % b를 하면
a를 b로 나눈 나머지를 정수로 반환해 줌.

거듭제곱 연산자. a ** b를 하면
a를 b번 곱한 값이 반환됨.


이항연산자 +를 사용해 문자열을 연결 할 수 있다.
덧셈 연산잔는 대개 숫자를 더한 결과를 반환한다.
그런데 피연산자로 문자열이 전달되면 문자열을 연결한다.
이에 의해 이항 연산자 +을 사용할 때에는 피연산자 중 하나가 문자열이면 다른 하나도 문자열로 변환된다는 것을 유의할 것.

2 + 2 + '1'
이 경우도 5가 아니라 4+'1'이 진행되어 덧셈에 문자열이 들어있느니 문자열로 바뀌어서 '4' + '1'이 되고 결과는 '41'이 된다.

다른 산술 연산자는 오로지 숫자형만 다루는데 숫자와 문자열로된 수의 계산을 진행해보면

console.log(6 - '2') // 4
console.log('6' / '2') // 3

문자열인 피연산자가 숫자로 변경이 되면서 연산이 된다.


덧셈 연산자 +는 이항 뿐만 아니라 단항 연산자로도 사용이 가능하다.

숫자가 아닌 피연산자에 이 덧셈 연산자를 붙이면 숫자형으로 변환된다!!!

let x = 1;
console.log(+x);// 1

let y = -2;
console.log(+y); //-2
----------------------------
console.log(+true) // 1
console.log(+"") // 0

Number로 묶지 않아도 이렇게 짧고 간단한 방법으로 숫자형으로 변경이 가능하다!!


비트 연산자

인수를 32비트 정수로 변환하여 이진 연산을 수행.
대부분의 프로그래밍 언어에서 지원한다.

  • & => 비트 AND
  • | => 비트 OR
  • ^ => 비트 XOR
  • ~ => 비트 NOT
  • << => 왼쪽 시프트
  • >> => 오른쪽 시프트
  • >>> => 부호없는 오른쪽 시프트

2진 표현시에 숫자를 다루어야할 경우에 쓰이지 흔하게는 쓰이지 않음.


쉼표 연산자

말그대로 쉼표를 사용하는것인데 코드를 짧게 쓰려는 의도로 가끔 사용된다.
여러 표현식을 코드 한 줄에서 평가가 가능하게 해 주는 것인데 이때 표현식 각각이 모두 평가되지만, 마지막 표현식의 결과만 반환이된다.

아래와 같이 사용된다.

let a = (1 + 2, 3 + 4);
console.log(a) // 7 => 마지막의 3 + 4 라는 표현식의 결과만 반환 되는 것을 볼 수 있다 

그런데 쉼표의 우선순위는 매우 낮기에 위에서는 괄호가 있어서 먼저 계산이 되고 후반의 것이 a에 할당되는데 ,
만약 괄호가 없다면
a = 1 + 2 , 3 + 4
이렇게되고 쉼표는 맨 뒤에 계산되니 1 + 2 인 3이 먼저 계산되어 a = 3이 먼저 된 후, 3 + 4가 계산되지만 이 값은 무시가 된다.
(a = 1 + 2), 3 + 4
이렇게 연산된 것처럼 나오는 것이다.


via GIPHY

0개의 댓글