본문 바로가기

JavaScript

[JavaScript] 연산자

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

: 덧셈 연산자 +는 피연산자가 숫자가 아닌 경우에 숫자형으로 변환이 일어난다.


  
// 숫자에는 아무런 영향을 미치지 않습니다.
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 ); // 23, 이항 덧셈 연산자는 문자열을 연결합니다.
let apples = "2";
let oranges = "3";
// 이항 덧셈 연산자가 적용되기 전에, 두 피연산자는 숫자형으로 변화합니다.
alert( +apples + +oranges ); // 5
// `Number(...)`를 사용해서 같은 동작을 하는 코드를 작성할 수 있지만, 더 기네요.
// alert( Number(apples) + Number(oranges) ); // 5

- 연산자 우선순위

https://developer.mozilla.org/en-US/docs/web/javascript/reference/operators/operator_precedence

 

Operator precedence - JavaScript | MDN

Operator precedence determines how operators are parsed concerning each other. Operators with higher precedence become the operands of operators with lower precedence.

developer.mozilla.org

우선 순위 숫자가 클 수록 먼저 실행된다.

 

- 복합 할당 연산자

+=와 -=와 같이 문법을 짧게 할 수 있다. 우선순위는 =와 같이 낮다.


  
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과 동일합니다.)

 

- 증가/감소 연산자

1. 증가 연산자 : ++는 변수를 1 증가 시킨다.

2. 감소 연산자 : --는 변수를 1 감소 시킨다.

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


  
let counter = 2;
counter++; // counter = counter + 1과 동일하게 동작합니다. 하지만 식은 더 짧습니다.
alert( counter ); // 3
let counter = 2;
counter--; // counter = counter - 1과 동일하게 동작합니다. 하지만 식은 더 짧습니다.
alert( counter ); // 1

++연산자와 --연산자는 변수 앞이나 뒤에 올 수 도 있다.

1. counter++와 같이 피연산자 뒤에 올 때는, '후위형(postfix form)'

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


  
// 전위형 ++counter는 counter를 증가시키고 새로운 값 2를 반환한다.
let counter = 1;
let a = ++counter;
alert(a); // 2
// 후위형 counter++는 counter를 증가시키긴 하지만, 증가 전의 기존 값을 반환한다.
let counter = 1;
let a = counter++;
alert(a); // 1