자주 등장하는 용어

  • 피연산자(operand): 연산자가 연산을 수행하는 대상. 인수(argument)'라고 불리기도 함.
  • 단항(unary): 피연산자를 하나만 받는 연산자
  • 이항(binary): 두 개의 피연산자를 받는 연산자

 

JS 수학 연산자

  • 덧셈 연산자 +
  • 뺄셈 연산자 -
  • 곱셈 연산자 *
  • 나눗셈 연산자 /
  • 나머지 연산자 %
  • 거듭제곱 연산자 **

 

나머지 연산자 %

나머지 연산자를 사용한 표현식 a % b는 a를 b로 나눈 후 그 나머지(remainder)를 정수로 반환해준다.

alert( 5 % 2 ); // 5를 2로 나눈 후의 나머지인 1을 출력
alert( 8 % 3 ); // 8을 3으로 나눈 후의 나머지인 2를 출력

 

거듭제곱 연산자 **

거듭제곱 연산자(exponentiation operator)를 사용한 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

//예시1

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

//예시2

alert(2 + 2 + '1' ); // '221'이 아니라 '41'이 출력

 

단항 연산자 +와 숫자형으로의 변환

덧셈 연산자 +는 이항 연산자뿐만 아니라 단항 연산자로도 사용할 수 있다.


숫자에 단항 덧셈 연산자를 붙이면 이 연산자는 아무런 동작도 하지 않지만, 피연산자가 숫자가 아닌 경우엔 숫자형으로의 변환이 일어난다.

// 숫자에는 아무런 영향을 미치지 않는다.
let x = 1;
alert( +x ); // 1

let y = -2;
alert( +y ); // -2

// 숫자형이 아닌 피연산자는 숫자형으로 변화한다.
alert( +true ); // 1
alert( +"" );   // 0