--- 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")}}

같이 보기