5년 이상 전

자바스크립트 연산자

자바스크립트의 연산자에 대하여 알아보자.

산술연산자

a. 연산자

ㄱ. 덧셈
  1. 피연산자의 숫자 값을 더하거나 피연산자의 문자열을 이어 붙임
  2. 피연산자의 타입이 서로 다를 경우 toString() 메소드를 호출하여 더함
console.log('2' + 1);
console.log('1' + 2);
console.log('1' + {});
console.log(2 + null);
console.log(3 + undefined);
ㄴ. 나눗셈
  1. 자바스크립트의 모든 숫자는 부동소숫점 숫자로 취급됌
console.log(5/2);

b. 단항 연산자

ㄱ. 단항 덧셈(+)
  1. 피연산자를 숫자(or NaN)으로 바꾼 후 값을 반환한다. 만일 피연산자가 숫자일 경우 아무 일도 하지 않는다.
ㄴ. 단항 뺄셈(-)
  1. 피연산자를 숫자로 변환하려 시도하고 부호를 바꾼다.
ㄷ. 증가(++), 감소(--)
  1. 피연산자의 값 앞에 있을 경우 증가(감소)한 후의 값을 반환한다.
  2. 피연산자의 값 뒤에 있을 경우 현재 값을 반환한 후 증가(감소)한다.

ㄹ. 비트 연산자

2진수를 저수준에서 조작하는 데 사용한다. 사칙연산 과 같은 산술 연산을 수행하지는 않지만, 피연산자로 숫자 값을 사용하고 최종적으로 숫자값을 반환하기 때문에 자바스크립트에서는 산수 연산자로 분류되어있다. 많이 쓰지 않으니 종류만 알고 넘어가자.

  1. AND(&) : 불리언 AND연산을 수행한다.
  2. OR(|) : 불리언 OR연산을 수행한다.
  3. XOR(^) : 불리언 XOR 연산을 수행한다.
  4. NOT(~) : 모든 비트를 반전시킨다.
  5. << : 왼쪽으로 이동
  6. >> : 부호를 보존하면서 오른쪽으로 이동
  7. >>> : 0으로 채우면서 오른쪽으로 이동

c. 동치 연산자

ㄱ. ==
  1. 두 값 중 하나가 null이고 다른 하나가 undefined라면 일치한다.
  2. 두 값의 타입이 다를 경우 형변환을 한 후 비교한다.
  3. 하나의 객체가 있고 숫자,문자가 있다면 toString(), valueOf()를 호출한 후 비교한다
ㄴ. ===
  1. 두 값이 모두 null이거나 undefined면 일치한다.
  2. 적어도 하나의 값이 NaN이면 일치하지않는다. NaN은 isNaN()을 써야한다.
  3. 두 값이 문자열이며 정확히 같은위치에 16비트 값을 가지고 있다면 두 값은 일치한다. 육안상으로 같더라도 16비트 값의 순서가 다르게 인코딩되어 있다면 일치하지 않는다. (String.localCompare())
  4. 객체의 프로퍼티가 같더라도 주소값이 다르면 일치하지 않는다.
console.log(null === undefined);