이 장은 JavaScript의 모든 연산자operator, 식expression 및 키워드를 나열합니다.

항목별 식 및 연산자

알파벳순 목록은 왼쪽 사이드바를 보세요.

기본 식

기본 키워드 및 JavaScript의 일반 식.

this
this 키워드는 실행 문맥의 특별한 속성을 가리킵니다.
function
function 키워드는 함수 식을 정의합니다.
class
class 키워드는 클래스 식을 정의합니다.
function*
function* 키워드는 생성기generator 함수 식을 정의합니다.
yield
생성기 함수를 일시정지 및 재개합니다.
yield*
다른 생성기 함수 또는 순회가능 객체로 위임합니다.
async function
async function은 비동기 함수 표현식을 정의합니다.
[]
배열 초기자 및 리터럴 구문.
{}
객체 초기자 및 리터럴 구문.
/ab+c/i
정규식 리터럴 구문.
( )
그룹 연산자.

좌변 식

좌변값은 할당 대상입니다.

속성 접근자
속성 접근자는 객체의 속성 또는 메서드에 대한 접근 방법을 제공합니다.
(object.property, object["property"])
new
new 연산자는 생성자의 인스턴스를 만듭니다.
new.target
생성자 문맥에서, new.targetnew에 의해 호출된 생성자를 말합니다.
super
super 키워드는 부모 생성자를 호출합니다.
...obj
전개 연산자는 (함수 호출 시) 매개변수 여럿이나, (배열 리터럴에서) 다수의 요소를 필요로 하는 곳에서 표현식을 확장합니다.

증가 및 감소

접두/접미 증감 연산자입니다.

A++
접미 증가 연산자.
A--
접미 감소 연산자.
++A
접두 증가 연산자.
--A
접두 감소 연산자.

단항 연산자

단항 연산은 피연산자가 하나뿐인 연산입니다.

delete
delete 연산자는 객체에서 속성을 지웁니다.
void
void 연산자는 식의 반환값을 버립니다.
typeof
typeof 연산자는 주어진 객체의 형을 판별합니다.
+
단항 더하기 연산자는 피연산자를 숫자로 변환합니다.
-
단항 부정 연산자는 피연산자를 숫자로 변환한 뒤 부호를 바꿉니다.
~
비트 NOT 연산자.
!
논리 NOT 연산자.

산술 연산자

산술 연산자는 피연산자로 숫자 값(리터럴이나 변수)을 취하고 숫자 값 하나를 반환합니다.

+
덧셈 연산자.
-
뺄셈 연산자.
/
나눗셈 연산자.
*
곱셈 연산자.
%
나머지 연산자.
**
지수 연산자.

관계 연산자

비교 연산자는 피연산자를 비교하고, 비교가 참인지 여부를 나타내는 Boolean 값을 반환합니다.

in
in 연산자는 객체에 주어진 속성이 있는지를 결정합니다.
instanceof
instanceof 연산자는 객체가 다른 객체의 인스턴스인지 판별합니다.
<
작음 연산자.
>
큼 연산자.
<=
작거나 같음 연산자.
>=
크거나 같음 연산자.

참고: => 는 연산자가 아니고, 화살표 함수의 표기법입니다.

같음 연산자

같음 연산자의 평가 결과는 항상 Boolean 형으로 비교가 참인지 나타냅니다.

==
동등 연산자.
!=
부등 연산자.
===
일치identity 연산자.
!==
불일치 연산자.

비트 시프트 연산자

피연산자의 모든 비트를 이동shift하는 연산.

<<
비트 좌로 시프트 연산자.
>>
비트 우로 시프트 연산자.
>>>
비트 부호 없는 우로 시프트 연산자.

이진 비트 연산자

비트 연산자는 피연산자를 32비트 집합(0과 1)으로 다루고 표준 JavaScript 숫자 값을 반환합니다.

&
비트 AND.
|
비트 OR.
^
비트 XOR.

이진 논리 연산자

논리 연산자는 보통 사용될 때 불리언(논리) 값으로 사용되고, 불리언 값을 반환합니다.

&&
논리 AND.
||
논리 OR.

조건(3항) 연산자

(condition ? ifTrue : ifFalse)

조건 연산자는 조건의 논리값에 따라 두 값 중 하나를 반환합니다.

할당 연산자

할당 연산자는 값을 그 우변 피연산자의 값에 따라 좌변 피연산자에 할당합니다.

=
할당 연산자.
*=
곱셈 할당.
/=
나눗셈 할당.
%=
나머지 할당.
+=
덧셈 할당.
-=
뺄셈 할당
<<=
좌로 이동 할당.
>>=
우로 이동 할당.
>>>=
부호 없는 우로 이동 할당.
&=
비트 AND 할당.
^=
비트 XOR 할당.
|=
비트 OR 할당.
[a, b] = [1, 2]
{a, b} = {a:1, b:2}

구조 분해 할당은 배열 또는 객체의 속성을 배열 또는 객체 리터럴과 비슷해 보이는 구문을 사용하여 변수에 할당할 수 있게 합니다.

쉼표 연산자

,
쉼표 연산자는 여러 식을 단문으로 평가되게 하고 마지막 식의 결과를 반환합니다.

비표준 기능

Legacy generator function
function 키워드는 식 내부 legacy 생성기 함수를 정의하는데 사용될 수 있습니다. 함수를 legacy 생성기로 만들기 위해서는, 함수 몸통(body)은 적어도 하나의 yield 식을 포함해야 합니다.
Expression closures
식 클로저(closure)는 간단한 함수 작성을 위한 단축 구문입니다.
[for (x of y) x] 
배열 내포(comprehension).
(for (x of y) y) 
생성기 내포.

명세

명세 상태 설명
ECMAScript 1st Edition (ECMA-262)
The definition of 'Expressions' in that specification.
Standard 초기 정의
ECMAScript 5.1 (ECMA-262)
The definition of 'Expressions' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'ECMAScript Language: Expressions' in that specification.
Standard 신규: 전개 연산자, 해체 할당, super 키워드.

ECMAScript Latest Draft (ECMA-262)
The definition of 'ECMAScript Language: Expressions' in that specification.

Draft  

브라우저 호환성

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Array comprehensions
DeprecatedNon-standard
Chrome No support NoEdge No support NoFirefox No support 30 — 58IE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoEdge Mobile No support NoFirefox Android No support 30 — 58Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support Nonodejs No support No
async function expressionChrome Full support 55Edge Full support 15Firefox Full support 52IE No support NoOpera Full support 42Safari Full support 10.1WebView Android Full support 55Chrome Android Full support 55Edge Mobile Full support 15Firefox Android Full support 52Opera Android Full support 42Safari iOS Full support 10.1Samsung Internet Android Full support 6.0nodejs Full support 7.6.0
Full support 7.6.0
Full support 7.0.0
Disabled
Disabled From version 7.0.0: this feature is behind the --harmony runtime flag.
awaitChrome Full support 55Edge Full support YesFirefox Full support 52IE ? Opera Full support 42Safari Full support 10.1WebView Android Full support 55Chrome Android Full support 55Edge Mobile Full support YesFirefox Android Full support 52Opera Android Full support 42Safari iOS Full support 10.1Samsung Internet Android Full support 6.0nodejs Full support 7.6.0
Full support 7.6.0
Full support 7.0.0
Disabled
Disabled From version 7.0.0: this feature is behind the --harmony runtime flag.
classChrome Full support 42Edge Full support YesFirefox Full support 45IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support 42Chrome Android Full support 42Edge Mobile Full support YesFirefox Android Full support 45Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 4.0nodejs Full support 6.0.0
Full support 6.0.0
Full support 5.0.0
Disabled
Disabled From version 5.0.0: this feature is behind the --harmony runtime flag.
Comma operatorChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support 3Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes
Conditional operator (c ? t : f)Chrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes
deleteChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes
Destructuring assignmentChrome Full support 49Edge Full support 14Firefox Full support 41
Notes
Full support 41
Notes
Notes Firefox provided a non-standard destructuring implementation from Firefox 2 to 40.
IE No support NoOpera Full support YesSafari Full support 8WebView Android Full support 49Chrome Android Full support 49Edge Mobile Full support 14Firefox Android Full support 41
Notes
Full support 41
Notes
Notes Firefox provided a non-standard destructuring implementation from Firefox 2 to 40.
Opera Android Full support YesSafari iOS Full support 8Samsung Internet Android Full support 5.0nodejs Full support 6.0.0
Expression closures
DeprecatedNon-standard
Chrome No support NoEdge No support NoFirefox No support 3 — 60IE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoEdge Mobile No support NoFirefox Android No support 4 — 60Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support Nonodejs No support No
functionChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes
function*Chrome Full support YesEdge Full support YesFirefox Full support 26IE No support NoOpera Full support YesSafari Full support 10WebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 26Opera Android Full support YesSafari iOS Full support 10Samsung Internet Android Full support Yesnodejs Full support Yes
Generator comprehensions
DeprecatedNon-standard
Chrome No support NoEdge No support NoFirefox No support 30 — 58IE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoEdge Mobile No support NoFirefox Android No support 30 — 58Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support Nonodejs No support No
Grouping operator ()Chrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes
inChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes
instanceofChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes
Legacy generator function
DeprecatedNon-standard
Chrome No support NoEdge No support NoFirefox No support 2 — 58IE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoEdge Mobile No support NoFirefox Android No support 4 — 58Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support Nonodejs No support No
newChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes
new.targetChrome Full support 46Edge Full support YesFirefox Full support 41IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support 46Chrome Android Full support 46Edge Mobile Full support YesFirefox Android Full support 41Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 5.0nodejs Full support 5.0.0
Object initializerChrome Full support 1Edge Full support YesFirefox Full support 1IE Full support 1Opera Full support YesSafari Full support 1WebView Android Full support 1Chrome Android Full support 18Edge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support 1Samsung Internet Android Full support Yesnodejs Full support Yes
Pipeline operator (|>)
Experimental
Chrome No support NoEdge No support NoFirefox Full support 58
Disabled
Full support 58
Disabled
Disabled From version 58: this feature is behind the --enable-pipeline-operator compile flag.
IE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoEdge Mobile No support NoFirefox Android Full support 58
Disabled
Full support 58
Disabled
Disabled From version 58: this feature is behind the --enable-pipeline-operator compile flag.
Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support Nonodejs No support No
Property accessorsChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes
superChrome Full support 42Edge Full support YesFirefox Full support 45IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support 42Chrome Android Full support 42Edge Mobile Full support YesFirefox Android Full support 45Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 4.0nodejs Full support Yes
thisChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes
typeofChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes
voidChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes
yieldChrome Full support 39Edge Full support YesFirefox Full support 26
Notes
Full support 26
Notes
Notes Starting with Firefox 33, the parsing of the yield expression has been updated to conform with the ES2015 specification.
IE No support NoOpera Full support YesSafari Full support 10WebView Android Full support 39Chrome Android Full support 39Edge Mobile Full support YesFirefox Android Full support 26
Notes
Full support 26
Notes
Notes Starting with Firefox 33, the parsing of the yield expression has been updated to conform with the ES2015 specification.
Opera Android Full support YesSafari iOS Full support 10Samsung Internet Android Full support 4.0nodejs Full support 4.0.0
Full support 4.0.0
Full support 0.12
Disabled
Disabled From version 0.12: this feature is behind the --harmony runtime flag.
yield*Chrome Full support YesEdge Full support YesFirefox Full support 27
Notes
Full support 27
Notes
Notes Starting with Firefox 33, the parsing of the yield expression has been updated to conform with the ES2015 specification.
IE No support NoOpera Full support YesSafari Full support 10WebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 27
Notes
Full support 27
Notes
Notes Starting with Firefox 33, the parsing of the yield expression has been updated to conform with the ES2015 specification.
Opera Android Full support YesSafari iOS Full support 10Samsung Internet Android Full support Yesnodejs Full support 4.0.0
Full support 4.0.0
Full support 0.12
Disabled
Disabled From version 0.12: this feature is behind the --harmony runtime flag.

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.
Non-standard. Expect poor cross-browser support.
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.
See implementation notes.
See implementation notes.
User must explicitly enable this feature.
User must explicitly enable this feature.

같이 보기

문서 태그 및 공헌자

이 페이지의 공헌자: mdnwebdocs-bot, alattalatta, haeguri, Netaras, teoli, Anonymous
최종 변경자: mdnwebdocs-bot,