---
title: 식 및 연산자
slug: Web/JavaScript/Reference/Operators
tags:
  - JavaScript
  - Operators
  - Overview
  - Reference
translation_of: Web/JavaScript/Reference/Operators
---
{{jsSidebar("Operators")}}
이 장은 JavaScript의 모든 연산자, 식 및 키워드를 나열합니다.
항목별 식 및 연산자
알파벳순 목록은 왼쪽 사이드바를 보세요.
기본 식
기본 키워드 및 JavaScript의 일반 식.
 - {{JSxRef("Operators/this", "this")}}
 
 this 키워드는 실행 문맥의 특별한 속성을 가리킵니다. 
 - {{JSxRef("Operators/function", "function")}}
 
 function 키워드는 함수를 정의합니다. 
 - {{JSxRef("Operators/class", "class")}}
 
 class 키워드는 클래스를 정의합니다. 
 - {{JSxRef("Operators/function*", "function*")}}
 
 function* 키워드는 생성기 함수 식을 정의합니다. 
 - {{JSxRef("Operators/yield", "yield")}}
 
 - 생성기 함수를 일시정지 및 재개합니다.
 
 - {{JSxRef("Operators/yield*", "yield*")}}
 
 - 다른 생성기 함수 또는 순회가능 객체로 위임합니다.
 
 - {{JSxRef("Operators/async_function", "async function")}}
 
 async function은 비동기 함수 표현식을 정의합니다. 
 - {{JSxRef("Operators/await", "await")}}
 
 - 비동기 함수를 일시 중지했다가 다시 시작하고 promise의 resolution/rejection을 기다립니다.
 
 - {{JSxRef("Global_Objects/Array", "[]")}}
 
 - 배열 초기자 및 리터럴 구문.
 
 - {{JSxRef("Operators/Object_initializer", "{}")}}
 
 - 객체 초기자 및 리터럴 구문.
 
 - {{JSxRef("Global_Objects/RegExp", "/ab+c/i")}}
 
 - 정규식 리터럴 구문.
 
 - {{JSxRef("Operators/Grouping", "( )")}}
 
 - 그룹 연산자.
 
좌변 식
좌변값은 할당 대상입니다.
 - {{JSxRef("Operators/Property_accessors", "Property accessors", "", 1)}}
 
 - 속성 접근자는 객체의 속성 또는 메서드에 대한 접근 방법을 제공합니다.
 (object.property, object["property"]) 
 - {{JSxRef("Operators/new", "new")}}
 
 new 연산자는 생성자의 인스턴스를 만듭니다. 
 - {{JSxRef("Operators/new%2Etarget", "new.target")}}
 
 - 생성자 문맥에서, 
new.target은 {{jsxref("Operators/new", "new")}}에 의해 호출된 생성자를 말합니다. 
 - {{JSxRef("Operators/super", "super")}}
 
 super 키워드는 부모 생성자를 호출합니다. 
 - {{JSxRef("Operators/Spread_syntax", "...obj")}}
 
 - 전개 연산자는 (함수 호출 시) 매개변수 여럿이나, (배열 리터럴에서) 다수의 요소를 필요로 하는 곳에서 표현식을 확장합니다.
 
증가 및 감소
접두/접미 증감 연산자입니다.
 - {{JSxRef("Operators/Increment", "A++")}}
 
 - 접미 증가 연산자.
 
 - {{JSxRef("Operators/Decrement", "A--")}}
 
 - 접미 감소 연산자.
 
 - {{JSxRef("Operators/Increment", "++A")}}
 
 - 접두 증가 연산자.
 
 - {{JSxRef("Operators/Decrement", "--A")}}
 
 - 접두 감소 연산자.
 
단항 연산자
단항 연산은 피연산자가 하나뿐인 연산입니다.
 - {{JSxRef("Operators/delete", "delete")}}
 
 delete 연산자는 객체에서 속성을 지웁니다. 
 - {{JSxRef("Operators/void", "void")}}
 
 void 연산자는 식의 반환값을 버립니다. 
 - {{JSxRef("Operators/typeof", "typeof")}}
 
 typeof 연산자는 주어진 객체의 형을 판별합니다. 
 - {{JSxRef("Operators/Unary_plus", "+")}}
 
 - 단항 더하기 연산자는 피연산자를 숫자로 변환합니다.
 
 - {{JSxRef("Operators/Unary_negation", "-")}}
 
 - 단항 부정 연산자는 피연산자를 숫자로 변환한 뒤 부호를 바꿉니다.
 
 - {{JSxRef("Operators/Bitwise_NOT", "~")}}
 
 - 비트 NOT 연산자.
 
 - {{JSxRef("Operators/Logical_NOT", "!")}}
 
 - 논리 NOT 연산자.
 
산술 연산자
산술 연산자는 피연산자로 숫자 값(리터럴이나 변수)을 취하고 숫자 값 하나를 반환합니다.
 - {{JSxRef("Operators/Addition", "+")}}
 
 - 더하기 연산자.
 
 - {{JSxRef("Operators/Subtraction", "-")}}
 
 - 빼기 연산자.
 
 - {{JSxRef("Operators/Division", "/")}}
 
 - 나누기 연산자.
 
 - {{JSxRef("Operators/Multiplication", "*")}}
 
 - 곱하기 연산자.
 
 - {{JSxRef("Operators/Remainder", "%")}}
 
 - 나머지 연산자.
 
 - {{JSxRef("Operators/Exponentiation", "**")}}
 
 - 거듭제곱 연산자.
 
관계 연산자
비교 연산자는 피연산자를 비교하고, 비교가 참인지 여부를 나타내는 {{jsxref("Boolean")}} 값을 반환합니다.
 - {{JSxRef("Operators/in", "in")}}
 
 in 연산자는 객체에 주어진 속성이 있는지를 결정합니다. 
 - {{JSxRef("Operators/instanceof", "instanceof")}}
 
 instanceof 연산자는 객체가 다른 객체의 인스턴스인지 판별합니다. 
 - {{JSxRef("Operators/Less_than", "<")}}
 
 - 작음 연산자.
 
 - {{JSxRef("Operators/Greater_than", ">")}}
 
 - 큼 연산자.
 
 - {{JSxRef("Operators/Less_than_or_equal", "<=")}}
 
 - 작거나 같음 연산자.
 
 - {{JSxRef("Operators/Greater_than_or_equal", ">=")}}
 
 - 크거나 같음 연산자.
 
참고: => 는 연산자가 아니고, 화살표 함수의 표기법입니다.
 
같음 연산자
같음 연산자의 평가 결과는 항상 {{jsxref("Boolean")}} 형으로 비교가 참인지 나타냅니다.
 - {{JSxRef("Operators/Equality", "==")}}
 
 - 동등 연산자.
 
 - {{JSxRef("Operators/Inequality", "!=")}}
 
 - 부등 연산자.
 
 - {{JSxRef("Operators/Strict_equality", "===")}}
 
 - 일치 연산자.
 
 - {{JSxRef("Operators/Strict_inequality", "!==")}}
 
 - 불일치 연산자.
 
비트 시프트 연산자
피연산자의 모든 비트를 시프트하는 연산.
 - {{JSxRef("Operators/Left_shift", "<<")}}
 
 - 비트 좌로 시프트 연산자.
 
 - {{JSxRef("Operators/Right_shift", ">>")}}
 
 - 비트 우로 시프트 연산자.
 
 - {{JSxRef("Operators/Unsigned_right_shift", ">>>")}}
 
 - 비트 부호 없는 우로 시프트 연산자.
 
이진 비트 연산자
비트 연산자는 피연산자를 32비트 집합(0과 1)으로 다루고 표준 JavaScript 숫자 값을 반환합니다.
 - {{JSxRef("Operators/Bitwise_AND", "&")}}
 
 - 비트 AND.
 
 - {{JSxRef("Operators/Bitwise_OR", "|")}}
 
 - 비트 OR.
 
 - {{JSxRef("Operators/Bitwise_XOR", "^")}}
 
 - 비트 XOR.
 
이진 논리 연산자
논리 연산자는 보통 사용될 때 불리언(논리) 값으로 사용되고, 불리언 값을 반환합니다.
 - {{JSxRef("Operators/Logical_AND", "&&")}}
 
 - 논리 AND.
 
 - {{JSxRef("Operators/Logical_OR", "||")}}
 
 - 논리 OR.
 
 - {{JSxRef("Operators/Nullish_coalescing_operator", "??")}}
 
 - Nullish 통합 연산자.
 
조건부(삼항) 연산자
 - {{JSxRef("Operators/Conditional_Operator", "(condition ? ifTrue : ifFalse)")}}
 
조건부 연산자는 조건의 논리값에 따라 두 값 중 하나를 반환합니다.
선택적 연결 연산자
 - {{JSxRef("Operators/Optional_chaining", "?.")}}
 
 - 
 
선택적 연결 연산자는 참조가 nullish (null 또는 undefined) 인 경우 오류를 발생시키는 대신 undefined를 반환합니다.
  
할당 연산자
할당 연산자는 값을 그 우변 피연산자의 값에 따라 좌변 피연산자에 할당합니다.
 - {{JSxRef("Operators/Assignment", "=")}}
 
 - 할당 연산자.
 
 - {{JSxRef("Operators/Multiplication_assignment", "*=")}}
 
 - 곱셈 할당.
 
 - {{JSxRef("Operators/Exponentiation_assignment", "**=")}}
 
 - Exponentiation assignment.
 
 - {{JSxRef("Operators/Division_assignment", "/=")}}
 
 - 나눗셈 할당.
 
 - {{JSxRef("Operators/Remainder_assignment", "%=")}}
 
 - 나머지 할당.
 
 - {{JSxRef("Operators/Addition_assignment", "+=")}}
 
 - 덧셈 할당.
 
 - {{JSxRef("Operators/Subtraction_assignment", "-=")}}
 
 - 뺄셈 할당
 
 - {{JSxRef("Operators/Left_shift_assignment", "<<=")}}
 
 - 좌로 이동 할당.
 
 - {{JSxRef("Operators/Right_shift_assignment", ">>=")}}
 
 - 우로 이동 할당.
 
 - {{JSxRef("Operators/Unsigned_right_shift_assignment", ">>>=")}}
 
 - 부호 없는 우로 이동 할당.
 
 - {{JSxRef("Operators/Bitwise_AND_assignment", "&=")}}
 
 - 비트 AND 할당.
 
 - {{JSxRef("Operators/Bitwise_XOR_assignment", "^=")}}
 
 - 비트 XOR 할당.
 
 - {{JSxRef("Operators/Bitwise_OR_assignment", "|=")}}
 
 - 비트 OR 할당.
 
 - {{JSxRef("Operators/Logical_AND_assignment", "&&=")}}
 
 - 논리적 AND 할당.
 
 - {{JSxRef("Operators/Logical_OR_assignment", "||=")}}
 
 - 논리적 OR 할당.
 
 - {{JSxRef("Operators/Logical_nullish_assignment", "??=")}}
 
 - 논리적 nullish 할당.
 
 - {{JSxRef("Operators/Destructuring_assignment", "[a, b] = [1, 2]")}}
 {{JSxRef("Operators/Destructuring_assignment", "{a, b} = {a:1, b:2}")}} 
 - 
 
구조 분해 할당은 배열 또는 객체의 속성을 배열 또는 객체 리터럴과 비슷해 보이는 구문을 사용하여 변수에 할당할 수 있게 합니다.
  
쉼표 연산자
 - {{jsxref("Operators/Comma_Operator", ",")}}
 
 - 쉼표 연산자는 여러 식을 단문으로 평가되게 하고 마지막 식의 결과를 반환합니다.
 
명세
 
  
   | 명세 | 
  
  
   | {{SpecName('ESDraft', '#sec-ecmascript-language-expressions', 'ECMAScript Language: Expressions')}} | 
  
 
브라우저 호환성
{{Compat("javascript.operators")}}
같이 보기