[JavaScript] 연산자

thingzoo·2023년 4월 24일
0

JavaScript

목록 보기
2/7
post-thumbnail

1. 기본 연산자

사칙 연산자

  • 덧셈 연산자 +
  • 뺄셈 연산자 -
  • 곱셈 연산자 *
  • 나눗셈 연산자 /

나머지 연산자 %

a % b는 a를 b로 나눈 후 그 나머지(remainder)를 정수로 반환

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

거듭제곱 연산자 **

  • 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 거듭제곱은 세제곱근)

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

  • 이항 연산자 +의 피연산자로 문자열이 전달되면 덧셈 연산자는 덧셈이 아닌 문자열을 병합(연결)
  • 피연산자 중 하나가 문자열이면 다른 하나도 문자열로 변환됨
alert( '1' + 2 ); // "12"
alert( 2 + '1' ); // "21"
alert(2 + 2 + '1' ); // '221'이 아니라 '41

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

  • 피연산자가 숫자가 아닌 경우엔 숫자형으로 변환
// 숫자형이 아닌 피연산자는 숫자형으로 변화합니다.
alert( +true ); // 1
alert( +"" );   // 0

할당 연산자 =

  • 무언가를 할당할 때 쓰임

값을 반환하기도 함

let a = 1;
let b = 2;
let c = 3 - (a = b + 1); // 0

할당 연산자 체이닝

  • 여러 개를 연결 가능
let a, b, c;
a = b = c = 2 + 2;

복합 할당 연산자

  • 변수에 연산자를 적용하고 그 결과를 같은 변수에 저장
  • +=, -=, *=, /=
let n = 2;
n += 5; // (n = n + 5와 동일)
n *= 2; 

증가/감소 연산자 ++/--

  • 후위 연산자(a++) : 변수를 증가시키지만 이전값 반환
  • 전위 연산자(++a) : 변수를 증가시키고 새로운값 반환

비트 연산자

인수를 32비트 정수로 변환하여 이진 연산을 수행

  • 비트 AND ( & )
  • 비트 OR ( | )
  • 비트 XOR ( ^ )
  • 비트 NOT ( ~ )
  • 왼쪽 시프트(LEFT SHIFT) ( << )
  • 오른쪽 시프트(RIGHT SHIFT) ( >> )
  • 부호 없는 오른쪽 시프트(ZERO-FILL RIGHT SHIFT) ( >>> )

쉼표 연산자

  • 여러 표현식을 코드 한 줄에서 평가
  • 마지막 표현식의 평가 결과만 반환되는 점에 유의
let a = (1 + 2, 3 + 4);
alert( a ); // 7 (3 + 4의 결과)

2. 비교 연산자

  • 보다 큼·작음: a > b, a < b
  • 보다 크거나·작거나 같음: a >= b, a <= b
  • 같음(동등): a == b
  • 같지 않음(부등): a != b

불린형 반환

alert( 2 > 1 );  // true
alert( 2 == 1 ); // false
alert( 2 != 1 ); // true

문자열 비교

  • ‘사전’ 순으로 문자열을 비교
alert( 'Z' > 'A' ); // true
alert( 'Glow' > 'Glee' ); // true
alert( 'Bee' > 'Be' ); // true

다른 형을 가진 값 간의 비교

  • 비교하려는 값의 자료형이 다르면 자바스크립트는 이 값들을 숫자형으로 바꿈
alert( '2' > 1 ); // true, '2'->2
alert( '01' == 1 ); // true, '01'->1

일치 연산자(strict equality operator) ===

  • 자료형의 동등 여부를 비교할 때 사용
alert( 0 === false ); // false
  • 동등 연산자(==)는 0과 false를 구별하지 못함
alert( 0 == false ); // true

null이나 undefined와 비교하기

  • 특별한 규칙이 적용
alert(null === undefined); // false
alert(null == undefined); // true

산술 연산자나 기타 비교 연산자(<, >, <=, >=)

  • null과 undefined는 숫자형으로 변환됨
  • null은 0, undefined는 NaN

null vs 0

alert( null > 0 );  // (1) false
alert( null == 0 ); // (2) false
alert( null >= 0 ); // (3) true

3. 논리 연산자

|| (OR)

인수 중 하나라도 true이면 true를 반환하고, 그렇지 않으면 false를 반환

alert( true || true );   // true
alert( false || true );  // true
alert( true || false );  // true
alert( false || false ); // false

&& (AND)

두 피연산자가 모두가 참일 때 true를 반환합니다. 그 외의 경우는 false를 반환

alert( true && true );   // true
alert( false && true );  // false
alert( true && false );  // false
alert( false && false ); // false

! (NOT)

  1. 피연산자를 불린형(true / false)으로 변환합니다.
  2. 1에서 변환된 값의 역을 반환합니다.
alert( !true ); // false
alert( !0 ); // true
  • NOT을 두 개 연달아 사용(!!)하면 값을 불린형으로 변환
  • 내장 함수 Boolean을 사용하면 같은 결과를 도출
alert( !!"non-empty string" ); // true
alert( !!null ); // false

Reference

🔗 모던 JavaScript 튜토리얼

profile
공부한 내용은 바로바로 기록하자!

0개의 댓글