[JS] 003 기본 연산자와 수학

조승원·2021년 11월 8일
0

JaveScript

목록 보기
3/11
post-thumbnail

지난 포스팅에서 자료형에 대해 공부하고 정리를 했는데 예전 42서울 이라는 아카데미에서 C언어를 공부할때보다 쉬웠던거같습니다. 아직 객체와 심볼은 깊게 파고들지 못하고 의미만 알고있지만 후에 더 알아가봐야할거같습니다.


단항 연산자

피연산자를 하나만 받는 연산자는 단항(unary)라고 부른다.
피연산자의 부호를 뒤집는 단항 마이너스 연산자 - 는 단항 연산자의 대표적인 예 의다.

let x = 1;

x = -x;
alert(x); // -1, 단항 마이너스 연산자는 부호를 뒤집는다.

이항 연산자

두 개의 피연산자를 받는 연산자는 이항(binary) 연산자 라고 부른다.
마이너스 연산자는 아래와 같이 이항 연산자로 쓸 수도 있다.

let x = 1, y = 3;
alert( y - x ); // 2, 이항 마이너스 연산자는 뺄셈을 해준다.

수학

자바스크립트에서 지원하는 수학 연산자는 다음과 같다.

  • 덧셈 연산자 +

  • 뺄셈 연산자 -

  • 곱셈 연산자 *

  • 나눗셈 연산자 /

  • 나머지 연산자 %

  • 거듭제곱 연산자 **


이항 연산자 '+'와 문자열 연결

이항 연산자 +의 피연산자로 문자열이 전달되면 덧셈 연산자는 덧셈이 아닌 문자열을 병합(연결)한다.

let s = "my" + "string";
alert(s); // mystring

따라서 이항 연산자 +를 사용할 때는 피연산자 중 하나가 문자열이면 다른 하나도 문자열로 변환된다는 점에 주의해야 한다.

alert( '1' + 2 ); // "12"
alert( 2 + '1' ); // "21"

연산은 왼쪽에서 오른쪽으로 순차적으로 진행되기 때문에 두 개의 숫자 뒤에 문자열이 오는 경우, 숫자가 먼저 더해지고, 그 후 더해진 숫자와 문자열과의 병합이 일어난다.

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

증가,감소 연산자

  • 증가(increment)연산자 ++는 변수를 1 증가시킵니다.

let counter = 2;
counter++;   // counter = counter + 1과 동일하게 동작.
alert( counter ); // 3
  • 감소(decrement)연산자 --는 변수를 1 감소시킵니다.

let counter = 2;
counter==;   // counter = counter - 1과 동일하게 동작.
alert( counter ); // 1

❗ 중요 :

증가/감소 연산자는 변수에만 쓸 수 있다.

  • counter++와 같이 피연산자 뒤에 올 때는, '후위형(postfix form)'이라고 부른다.

  • ++counter와 같이 피연산자 앞에 올 때는, '전위형(prefix form)'이라고 부른다.

값을 증가시키고 난 후, 증가한 값을 바로 사용하려면 전위형 증가 연산자를 사용하면 된다.

let counter = 0;
alert( ++counter ); // 1

값을 증가시키지만, 증가 전의 기존값을 사용하려면 후위형 증가 연산자를 사용하면 된다.

let counter = 0;
alert( counter++ ); // 0

비트연산자

비트 연산자(bitwise operator)는 인수를 32비트 정수로 변환하여 이진 연산을 수행한다.

이런 비트 조작 관련 연산자는 자바스크립트뿐만 아니라 대부분의 프로그래밍 언어에서 지원한다.

  • 비트 AND ( & )

  • 비트 OR ( | )

  • 비트 XOR ( ^ )

  • 비트 NOT ( ~ )

  • 왼쪽 시프트(LEFT SHIFT) ( << )

  • 오른쪽 시프트(RIGHT SHIFT) ( >> )

  • 부호 없는 오른쪽 시프트(ZERO-FILL RIGHT SHIFT) ( >>> )

profile
Front-end

0개의 댓글