aboutsummaryrefslogtreecommitdiff
path: root/files/ko/web/javascript/reference/operators/index.html
blob: 9605b84278c7cfaad8f65e34795bc9b0e0a4edb9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
---
title: 식 및 연산자
slug: Web/JavaScript/Reference/Operators
tags:
  - JavaScript
  - Operators
  - Overview
  - Reference
translation_of: Web/JavaScript/Reference/Operators
---
<div>{{jsSidebar("Operators")}}</div>

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

<h2 id="항목별_식_및_연산자">항목별 식 및 연산자</h2>

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

<h3 id="기본_식">기본 식</h3>

<p>기본 키워드 및 JavaScript의 일반 식.</p>

<dl>
 <dt>{{JSxRef("Operators/this", "this")}}</dt>
 <dd><code>this</code> 키워드는 실행 문맥의 특별한 속성을 가리킵니다.</dd>
 <dt>{{JSxRef("Operators/function", "function")}}</dt>
 <dd><code>function</code> 키워드는 함수를 정의합니다.</dd>
 <dt>{{JSxRef("Operators/class", "class")}}</dt>
 <dd><code>class</code> 키워드는 클래스를 정의합니다.</dd>
 <dt>{{JSxRef("Operators/function*", "function*")}}</dt>
 <dd><code>function*</code> 키워드는 생성기<sup>generator</sup> 함수 식을 정의합니다.</dd>
 <dt>{{JSxRef("Operators/yield", "yield")}}</dt>
 <dd>생성기 함수를 일시정지 및 재개합니다.</dd>
 <dt>{{JSxRef("Operators/yield*", "yield*")}}</dt>
 <dd>다른 생성기 함수 또는 순회가능 객체로 위임합니다.</dd>
 <dt>{{JSxRef("Operators/async_function", "async function")}}</dt>
 <dd><code>async function</code>은 비동기 함수 표현식을 정의합니다.</dd>
</dl>

<dl>
 <dt>{{JSxRef("Operators/await", "await")}}</dt>
 <dd>비동기 함수를 일시 중지했다가 다시 시작하고 promise의 resolution/rejection을 ​​기다립니다.</dd>
</dl>

<dl>
 <dt>{{JSxRef("Global_Objects/Array", "[]")}}</dt>
 <dd>배열 초기자 및 리터럴 구문.</dd>
 <dt>{{JSxRef("Operators/Object_initializer", "{}")}}</dt>
 <dd>객체 초기자 및 리터럴 구문.</dd>
 <dt>{{JSxRef("Global_Objects/RegExp", "/ab+c/i")}}</dt>
 <dd>정규식 리터럴 구문.</dd>
 <dt>{{JSxRef("Operators/Grouping", "( )")}}</dt>
 <dd>그룹 연산자.</dd>
</dl>

<h3 id="좌변_식">좌변 식</h3>

<p>좌변값은 할당 대상입니다.</p>

<dl>
 <dt>{{JSxRef("Operators/Property_accessors", "Property accessors", "", 1)}}</dt>
 <dd>속성 접근자는 객체의 속성 또는 메서드에 대한 접근 방법을 제공합니다.<br>
 (<code>object.property</code>, <code>object["property"]</code>)</dd>
 <dt>{{JSxRef("Operators/new", "new")}}</dt>
 <dd><code>new</code> 연산자는 생성자의 인스턴스를 만듭니다.</dd>
 <dt>{{JSxRef("Operators/new%2Etarget", "new.target")}}</dt>
 <dd>생성자 문맥에서, <code>new.target</code>{{jsxref("Operators/new", "new")}}에 의해 호출된 생성자를 말합니다.</dd>
 <dt>{{JSxRef("Operators/super", "super")}}</dt>
 <dd><code>super</code> 키워드는 부모 생성자를 호출합니다.</dd>
 <dt>{{JSxRef("Operators/Spread_syntax", "...obj")}}</dt>
 <dd>전개 연산자는 (함수 호출 시) 매개변수 여럿이나, (배열 리터럴에서) 다수의 요소를 필요로 하는 곳에서 표현식을 확장합니다.</dd>
</dl>

<h3 id="증가_및_감소">증가 및 감소</h3>

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

<dl>
 <dt>{{JSxRef("Operators/Increment", "A++")}}</dt>
 <dd>접미 증가 연산자.</dd>
 <dt>{{JSxRef("Operators/Decrement", "A--")}}</dt>
 <dd>접미 감소 연산자.</dd>
 <dt>{{JSxRef("Operators/Increment", "++A")}}</dt>
 <dd>접두 증가 연산자.</dd>
 <dt>{{JSxRef("Operators/Decrement", "--A")}}</dt>
 <dd>접두 감소 연산자.</dd>
</dl>

<h3 id="단항_연산자">단항 연산자</h3>

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

<dl>
 <dt>{{JSxRef("Operators/delete", "delete")}}</dt>
 <dd><code>delete</code> 연산자는 객체에서 속성을 지웁니다.</dd>
 <dt>{{JSxRef("Operators/void", "void")}}</dt>
 <dd><code>void</code> 연산자는 식의 반환값을 버립니다.</dd>
 <dt>{{JSxRef("Operators/typeof", "typeof")}}</dt>
 <dd><code>typeof</code> 연산자는 주어진 객체의 형을 판별합니다.</dd>
 <dt>{{JSxRef("Operators/Unary_plus", "+")}}</dt>
 <dd>단항 더하기 연산자는 피연산자를 숫자로 변환합니다.</dd>
 <dt>{{JSxRef("Operators/Unary_negation", "-")}}</dt>
 <dd>단항 부정 연산자는 피연산자를 숫자로 변환한 뒤 부호를 바꿉니다.</dd>
 <dt>{{JSxRef("Operators/Bitwise_NOT", "~")}}</dt>
 <dd>비트 NOT 연산자.</dd>
 <dt>{{JSxRef("Operators/Logical_NOT", "!")}}</dt>
 <dd>논리 NOT 연산자.</dd>
</dl>

<h3 id="산술_연산자">산술 연산자</h3>

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

<dl>
 <dt>{{JSxRef("Operators/Addition", "+")}}</dt>
 <dd>덧셈 연산자.</dd>
 <dt>{{JSxRef("Operators/Subtraction", "-")}}</dt>
 <dd>뺄셈 연산자.</dd>
 <dt>{{JSxRef("Operators/Division", "/")}}</dt>
 <dd>나눗셈 연산자.</dd>
 <dt>{{JSxRef("Operators/Multiplication", "*")}}</dt>
 <dd>곱셈 연산자.</dd>
 <dt>{{JSxRef("Operators/Remainder", "%")}}</dt>
 <dd>나머지 연산자.</dd>
</dl>

<dl>
 <dt>{{JSxRef("Operators/Exponentiation", "**")}}</dt>
 <dd>지수 연산자.</dd>
</dl>

<h3 id="관계_연산자">관계 연산자</h3>

<p>비교 연산자는 피연산자를 비교하고, 비교가 참인지 여부를 나타내는 {{jsxref("Boolean")}} 값을 반환합니다.</p>

<dl>
 <dt>{{JSxRef("Operators/in", "in")}}</dt>
 <dd><code>in</code> 연산자는 객체에 주어진 속성이 있는지를 결정합니다.</dd>
 <dt>{{JSxRef("Operators/instanceof", "instanceof")}}</dt>
 <dd><code>instanceof</code> 연산자는 객체가 다른 객체의 인스턴스인지 판별합니다.</dd>
 <dt>{{JSxRef("Operators/Less_than", "&lt;")}}</dt>
 <dd>작음 연산자.</dd>
 <dt>{{JSxRef("Operators/Greater_than", "&gt;")}}</dt>
 <dd>큼 연산자.</dd>
 <dt>{{JSxRef("Operators/Less_than_or_equal", "&lt;=")}}</dt>
 <dd>작거나 같음 연산자.</dd>
 <dt>{{JSxRef("Operators/Greater_than_or_equal", "&gt;=")}}</dt>
 <dd>크거나 같음 연산자.</dd>
</dl>

<div class="note">
<p><strong>참고: =&gt;</strong> 는 연산자가 아니고, <a href="/ko/docs/Web/JavaScript/Reference/Functions/Arrow_functions">화살표 함수</a>의 표기법입니다.</p>
</div>

<h3 id="같음_연산자">같음 연산자</h3>

<p>같음 연산자의 평가 결과는 항상 {{jsxref("Boolean")}} 형으로 비교가 참인지 나타냅니다.</p>

<dl>
 <dt>{{JSxRef("Operators/Equality", "==")}}</dt>
 <dd>동등 연산자.</dd>
 <dt>{{JSxRef("Operators/Inequality", "!=")}}</dt>
 <dd>부등 연산자.</dd>
 <dt>{{JSxRef("Operators/Strict_equality", "===")}}</dt>
 <dd>일치<sup>identity</sup> 연산자.</dd>
 <dt>{{JSxRef("Operators/Strict_inequality", "!==")}}</dt>
 <dd>불일치 연산자.</dd>
</dl>

<h3 id="비트_시프트_연산자">비트 시프트 연산자</h3>

<p>피연산자의 모든 비트를 이동<sup>shift</sup>하는 연산.</p>

<dl>
 <dt>{{JSxRef("Operators/Left_shift", "&lt;&lt;")}}</dt>
 <dd>비트 좌로 시프트 연산자.</dd>
 <dt>{{JSxRef("Operators/Right_shift", "&gt;&gt;")}}</dt>
 <dd>비트 우로 시프트 연산자.</dd>
 <dt>{{JSxRef("Operators/Unsigned_right_shift", "&gt;&gt;&gt;")}}</dt>
 <dd>비트 부호 없는 우로 시프트 연산자.</dd>
</dl>

<h3 id="이진_비트_연산자">이진 비트 연산자</h3>

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

<dl>
 <dt>{{JSxRef("Operators/Bitwise_AND", "&amp;")}}</dt>
 <dd>비트 AND.</dd>
 <dt>{{JSxRef("Operators/Bitwise_OR", "|")}}</dt>
 <dd>비트 OR.</dd>
 <dt>{{JSxRef("Operators/Bitwise_XOR", "^")}}</dt>
 <dd>비트 XOR.</dd>
</dl>

<h3 id="이진_논리_연산자">이진 논리 연산자</h3>

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

<dl>
 <dt>{{JSxRef("Operators/Logical_AND", "&amp;&amp;")}}</dt>
 <dd>논리 AND.</dd>
 <dt>{{JSxRef("Operators/Logical_OR", "||")}}</dt>
 <dd>논리 OR.</dd>
 <dt>{{JSxRef("Operators/Nullish_coalescing_operator", "??")}}</dt>
 <dd>Nullish 통합 연산자.</dd>
</dl>

<h3 id="조건부삼항_연산자">조건부(삼항) 연산자</h3>

<dl>
 <dt>{{JSxRef("Operators/Conditional_Operator", "(condition ? ifTrue : ifFalse)")}}</dt>
</dl>

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

<h3 id="선택적_연결_연산자">선택적 연결 연산자</h3>

<dl>
 <dt>{{JSxRef("Operators/Optional_chaining", "?.")}}</dt>
 <dd>
 <p>선택적 연결 연산자는 참조가 <a href="https://developer.mozilla.org/en-US/docs/Glossary/nullish">nullish</a> (<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/null"><code>null</code></a> 또는 <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined"><code>undefined</code></a>) 인 경우 오류를 발생시키는 대신 <code>undefined</code>를 반환합니다.</p>
 </dd>
</dl>

<h3 id="할당_연산자">할당 연산자</h3>

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

<dl>
 <dt>{{JSxRef("Operators/Assignment", "=")}}</dt>
 <dd>할당 연산자.</dd>
 <dt>{{JSxRef("Operators/Multiplication_assignment", "*=")}}</dt>
 <dd>곱셈 할당.</dd>
 <dt>{{JSxRef("Operators/Exponentiation_assignment", "**=")}}</dt>
 <dd>Exponentiation assignment.</dd>
 <dt>{{JSxRef("Operators/Division_assignment", "/=")}}</dt>
 <dd>나눗셈 할당.</dd>
 <dt>{{JSxRef("Operators/Remainder_assignment", "%=")}}</dt>
 <dd>나머지 할당.</dd>
 <dt>{{JSxRef("Operators/Addition_assignment", "+=")}}</dt>
 <dd>덧셈 할당.</dd>
 <dt>{{JSxRef("Operators/Subtraction_assignment", "-=")}}</dt>
 <dd>뺄셈 할당</dd>
 <dt>{{JSxRef("Operators/Left_shift_assignment", "&lt;&lt;=")}}</dt>
 <dd>좌로 이동 할당.</dd>
 <dt>{{JSxRef("Operators/Right_shift_assignment", "&gt;&gt;=")}}</dt>
 <dd>우로 이동 할당.</dd>
 <dt>{{JSxRef("Operators/Unsigned_right_shift_assignment", "&gt;&gt;&gt;=")}}</dt>
 <dd>부호 없는 우로 이동 할당.</dd>
 <dt>{{JSxRef("Operators/Bitwise_AND_assignment", "&amp;=")}}</dt>
 <dd>비트 AND 할당.</dd>
 <dt>{{JSxRef("Operators/Bitwise_XOR_assignment", "^=")}}</dt>
 <dd>비트 XOR 할당.</dd>
 <dt>{{JSxRef("Operators/Bitwise_OR_assignment", "|=")}}</dt>
 <dd>비트 OR 할당.</dd>
</dl>

<dl>
 <dt>{{JSxRef("Operators/Logical_AND_assignment", "&amp;&amp;=")}}</dt>
 <dd>논리적 AND 할당.</dd>
 <dt>{{JSxRef("Operators/Logical_OR_assignment", "||=")}}</dt>
 <dd>논리적 OR 할당.</dd>
 <dt>{{JSxRef("Operators/Logical_nullish_assignment", "??=")}}</dt>
 <dd>논리적 nullish 할당.</dd>
</dl>

<dl>
 <dt>{{JSxRef("Operators/Destructuring_assignment", "[a, b] = [1, 2]")}}<br>
 {{JSxRef("Operators/Destructuring_assignment", "{a, b} = {a:1, b:2}")}}</dt>
 <dd>
 <p>구조 분해 할당은 배열 또는 객체의 속성을 배열 또는 객체 리터럴과 비슷해 보이는 구문을 사용하여 변수에 할당할 수 있게 합니다.</p>
 </dd>
</dl>

<h3 id="쉼표_연산자">쉼표 연산자</h3>

<dl>
 <dt>{{jsxref("Operators/Comma_Operator", ",")}}</dt>
 <dd>쉼표 연산자는 여러 식을 단문으로 평가되게 하고 마지막 식의 결과를 반환합니다.</dd>
</dl>

<h2 id="명세">명세</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">명세</th>
  </tr>
  <tr>
   <td>{{SpecName('ESDraft', '#sec-ecmascript-language-expressions', 'ECMAScript Language: Expressions')}}</td>
  </tr>
 </tbody>
</table>

<h2 id="브라우저_호환성">브라우저 호환성</h2>

<p>{{Compat("javascript.operators")}}</p>

<h2 id="같이_보기">같이 보기</h2>

<ul>
 <li><a href="/ko/docs/Web/JavaScript/Reference/Operators/연산자_우선순위">연산자 우선순위</a></li>
</ul>