aboutsummaryrefslogtreecommitdiff
path: root/files/ko/web/javascript/reference/operators/exponentiation/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/ko/web/javascript/reference/operators/exponentiation/index.html')
-rw-r--r--files/ko/web/javascript/reference/operators/exponentiation/index.html110
1 files changed, 110 insertions, 0 deletions
diff --git a/files/ko/web/javascript/reference/operators/exponentiation/index.html b/files/ko/web/javascript/reference/operators/exponentiation/index.html
new file mode 100644
index 0000000000..aaa729c10b
--- /dev/null
+++ b/files/ko/web/javascript/reference/operators/exponentiation/index.html
@@ -0,0 +1,110 @@
+---
+title: 거듭제곱 (**)
+slug: Web/JavaScript/Reference/Operators/Exponentiation
+tags:
+ - JavaScript
+ - Language feature
+ - Operator
+ - Reference
+browser-compat: javascript.operators.exponentiation
+translation_of: Web/JavaScript/Reference/Operators/Exponentiation
+---
+
+<div>{{jsSidebar("Operators")}}</div>
+
+<p>
+ 거듭제곱 연산자(<code>**</code>)는 왼쪽 피연산자를 밑, 오른쪽 피연산자를 지수로 한 값을 구합니다.
+ {{jsxref("BigInt")}}도 피연산자로 받을 수 있다는 점을 제외하면 {{jsxref("Math.pow()")}}와 같습니다.
+</p>
+
+<div>{{EmbedInteractiveExample("pages/js/expressions-exponentiation.html")}}</div>
+
+<h2 id="syntax">구문</h2>
+
+<pre class="brush: js">x ** y</pre>
+
+<h2 id="description">설명</h2>
+
+<p>
+ 거듭제곱 연산자는 우측 결합성을 가집니다. 따라서 <code><var>a</var> ** <var>b</var> ** <var>c</var></code
+ >는 <code><var>a</var> ** (<var>b</var> ** <var>c</var>)</code>와 같습니다.
+</p>
+
+<p>
+ PHP, Python 등 거듭제곱 연산자(<code>**</code>)를 포함하는 언어의 대부분은 거듭제곱 연산자가 단항 연산자(단항
+ <code>+</code>, <code>-</code> 등)보다 높은 우선순위를 가집니다. 그러나 Bash처럼 단항 연산자가 더 높은 우선순위를
+ 가지는 예외의 언어도 있습니다.
+</p>
+
+<p>
+ 반면 JavaScript에서는 모호한 거듭제곱 표현식을 작성하는 것이 불가능합니다. 단항
+ 연산자(<code>+/-/~/!/delete/void/typeof</code>)를 밑 피연산자의 바로 앞에 사용할 수 없으며, 사용하려고 하면
+ {{jsxref("SyntaxError")}}가 발생합니다.
+</p>
+
+<pre class="brush: js">
+-2 ** 2;
+// Bash에서는 4, 다른 언어에서는 -4
+// 모호한 식이므로 JavaScript에서 유효하지 않음
+
+-(2 ** 2);
+// JavaScript에서 -4, 저자의 의도가 명확함
+</pre>
+
+<p>
+ 참고로 어떤 언어에선 캐럿 기호 <kbd>^</kbd>를 거듭제곱에 사용하지만, JavaScript에서 캐럿은
+ <a href="/ko/docs/Web/JavaScript/Reference/Operators/Bitwise_XOR">비트 XOR 연산자</a>에서
+ 사용합니다.
+</p>
+
+<h2 id="examples">예제</h2>
+
+<h3 id="basic_exponentiation">기본 거듭제곱</h3>
+
+<pre class="brush: js">
+2 ** 3 // 8
+3 ** 2 // 9
+3 ** 2.5 // 15.588457268119896
+10 ** -1 // 0.1
+NaN ** 2 // NaN
+</pre>
+
+<h3 id="associativity">연관성</h3>
+
+<pre class="brush: js">
+2 ** 3 ** 2 // 512
+2 ** (3 ** 2) // 512
+(2 ** 3) ** 2 // 64
+</pre>
+
+<h3 id="usage_with_unary_operators">단항 연산자와 사용하기</h3>
+
+<p>거듭제곱 결과의 부호를 반전하려면,</p>
+
+<pre class="brush: js">-(2 ** 2) // -4</pre>
+
+<p>거듭제곱 표현식의 밑에 음수를 제공하려면,</p>
+
+<pre class="brush: js">(-2) ** 2 // 4</pre>
+
+<h2 id="specifications">명세</h2>
+
+{{Specifications}}
+
+<h2 id="browser_compatibility">브라우저 호환성</h2>
+
+<p>{{Compat}}</p>
+
+<h2 id="see_also">같이 보기</h2>
+
+<ul>
+ <li><a href="/ko/docs/Web/JavaScript/Reference/Operators/Addition">더하기 연산자</a></li>
+ <li><a href="/ko/docs/Web/JavaScript/Reference/Operators/Subtraction">빼기 연산자</a></li>
+ <li><a href="/ko/docs/Web/JavaScript/Reference/Operators/Division">나누기 연산자</a></li>
+ <li><a href="/ko/docs/Web/JavaScript/Reference/Operators/Multiplication">곱하기 연산자</a></li>
+ <li><a href="/ko/docs/Web/JavaScript/Reference/Operators/Remainder">나머지 연산자</a></li>
+ <li><a href="/ko/docs/Web/JavaScript/Reference/Operators/Increment">증가 연산자</a></li>
+ <li><a href="/ko/docs/Web/JavaScript/Reference/Operators/Decrement">감소 연산자</a></li>
+ <li><a href="/ko/docs/Web/JavaScript/Reference/Operators/Unary_negation">단항 부정 연산자</a></li>
+ <li><a href="/ko/docs/Web/JavaScript/Reference/Operators/Unary_plus">단항 플러스 연산자</a></li>
+</ul>