JavaScript Tutorial.12

ansunny1170·2021년 12월 5일
0
post-thumbnail

JS Arithmetic

JavaScript Arithmetic Operators

Arithmetic Operators 산술 연산자

OperatorDescription
+Addition
-Subtraction
*Multiplication
**Exponentiation (ES2016)
/Division
%Modulus (Remainder)
++Increment
--Decrement

Arithmetic Operations

산술 연산자

일반적인 산술 연산은 두개의 숫자에서 작동한다.
그 두개의 숫자는 고정된 값일 수 있다.(상수)

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Arithmetic</h2>
<p>A typical arithmetic operation takes two numbers and produces a new number.</p>

<p id="demo"></p>

<script>
let x = 100 + 50;
document.getElementById("demo").innerHTML = x;
</script>

</body>
</html>

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Arithmetic</h2>
<p>A typical arithmetic operation takes two numbers (or variables) and produces a new number.</p>

<p id="demo"></p>

<script>
let a = 100;
let b = 50;
let x = a + b;
document.getElementById("demo").innerHTML = x;
</script>

</body>
</html>

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Arithmetic</h2>
<p>A typical arithmetic operation takes two numbers (or expressions) and produces a new number.</p>

<p id="demo"></p>

<script>
let a = 3;
let x = (100 + 50) * a;
document.getElementById("demo").innerHTML = x;
</script>

</body>
</html>

Operators and Operands

  • 숫자(산술 연산에서)를 피연산자라고 한다.
    (두 피연산자 사이에서 수행되는) 연산은 연산자에 의해 정의된다.
OperandOperatorOperand
100+50

Adding

덧셈 연산자 +는 숫자를 더한다.

let x = 5;
let y = 2;
let z = x + y;

Subtracting

뺄셈 연산자 -는 숫자를 뺀다.

let x = 5;
let y = 2;
let z = x - y;

Multiplying

곱셈 연산자 *는 숫자를 곱한다.

let x = 5;
let y = 2;
let z = x * y;

Dividing

나눗셈 연산자 /는 숫자를 나눈다.

let x = 5;
let y = 2;
let z = x / y;

Remainder

계수 연산자 %는 숫자를 나눈 후 나머지 값을 리턴한다.

let x = 5;
let y = 2;
let z = x % y;
  • 산술에서 두 정수를 나누면 몫과 나머지가 생성된다.
    수학에서 계수연산자(module)로 연산의 결과는 산술 나눗셈의 나머지이다.

Incrementing

증가 연산자는 ++ 숫자를 증가시킨다.

let x = 5;
x++;
let z = x;

Decrementing

감소 연산자는 -- 숫자를 감소시킨다.

let x = 5;
x--;
let z = x;

Exponentiation

제곱(지수) 연산자 **는 첫 번째 피연산자를 두 번째 피연산자의 거듭제곱으로 올린다.

let x = 5;
let z = x ** 2;          // result is 25
  • x ** y produces the same result as Math.pow(x,y):
let x = 5;
let z = Math.pow(x,2);   // result is 25

Operator Precedence(연산의 우선순위)

연산자 우선순위는 산술식에서 연산이 수행되는 순서를 설명한다.
아래 예제의 결과는 100 + 150이다. 일반적인 수학과 동일하게 곱셈부터 진행한다.
역시 ( )괄호를 이용하여 우선순위를 지정할 수 있다.

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Arithmetic</h2>
<p>Multiplication has precedence over addition.</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 100 + 50 * 3;
</script>

</body>
</html>
  • 또한 일반적인 계산 순서는 왼쪽부터 오른쪽이다.
<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Arithmetic</h2>
<p>Multiplication has precedence over addition.</p>
<p>But parenthesis has precedence over multiplication.</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = (100 + 50) * 3;
</script>

</body>
</html>

JavaScript Operator Precedence Values

  • 빨간색 항목은 ECMAScript 2015(ES6)이상을 나타낸다.
  • 괄호 안의 표현식은 나머지 표현식에서 값이 사용되기 전에 완전히 계산된다.
ValueOperatorDescriptionExample
21( )Expression grouping(3 + 4)
20.Memberperson.name
20[]Member person["name"]
20()Function callmyFunction()
20newCreatenew Date()
18++Postfix Incrementi++
18--Postfix Decrementi--
17++Prefix Increment++i
17--Prefix Decrement--i
17!Logical not!(x==y)
17typeofTypetypeof x
16**Exponentiation(ES2016)10 ** 2
15*Multiplication10 * 5
15/Division10 / 5
15%Division Remainder10 % 5
14+Addition10 + 5
14-Subtraction10 - 5
13<<Shift leftx << 2
13>>Shift rightx >> 2
13>>>Shift right (unsigned)x >>> 2
12<Less thanx < y
12<=Less than or equalx <= y
12>Greater thanx > y
12>=Greater than or equalx >= y
12inProperty in Object"PI" in Math
12instanceofInstance of Objectinstanceof Array
11==Equalx == y
11===Strict equalx === y
11!=Unequalx != y
11!==Strict unequalx !== y
10&Bitwise ANDx & y
9^Bitwise XORx ^ y
8|Bitwise ORx
7&&Logical ANDx && y
6||Logical ORx
5??Nullish Coalescingx ?? y
4? :Condition? "Yes" : "No"
3+=Assignmentx += y
3/=Assignmentx /= y
3-=Assignmentx -= y
3*=Assignmentx *= y
3%=Assignmentx %= y
3<<=Assignmentx <<= y
3>>=Assignmentx >>= y
3>>>=Assignmentx >>>= y
3&=Assignmentx &= y
3^=Assignmentx ^= y
3|=Assignmentx
2yieldPause Functionyield x
1,Comma5 , 6
profile
공정 설비 개발/연구원에서 웹 서비스 개발자로 경력 이전하였습니다. Node.js 백엔드 기반 풀스택 개발자를 목표로 하고 있습니다.

0개의 댓글