Math expressions in Javascript

1. Math expressions

Javascript 코드에서 number의 데이터 타입과 수학적 표현식을 이용하여 계산이 가능하다.

example)
let myNumber1 = 18;
let myNumber2 = 6;

console.log(myNumber1 + myNumber2);  // 24
console.log(myNumber1 - myNumber2);  // 12
console.log(myNumber1 * myNumber2);  // 108
console.log(myNumber1 / myNumber2);  // 3

여기까지는 기본적인 수학공식을 통한 계산이지만 컴퓨터 언어에서 사용되는 수학적 표현도 존재한다.

example)
let number = 1;
number++;

여기서 나오는 number++를 풀어서 표현하면 아래와 같다. 그리고 1이 아닌 다른 수를 더하고 싶을때는 아래와 같이 풀어서 써야한다.

number = number + 1;

또 다른 표현으로는 위를 줄여서 이렇게도 표현한다

number += 1;

++가 있듯이 반대의 기능을 하는 --도 존재한다.

let number = 3;
number--;

--역시도 ++와 같이 총 세가지의 표현방식으로 쓸 수 있다.

1-1. number++ vs ++number

앞서서 우리가 쓴 방식은 숫자 1만큼을 increment하는 방식이였다. 그리고 그때 number++를 사용했다. 하지만, ++number라는 표현도 존재한다.

let number1 = 2;
number1++;

let number2 = 2;
++number2;

위와 같이 단순하게 값만 변경할때에는 이 두방식의 차이는 없다.
하지만 다른 변수에 넣는 과정에서 이와 같은 표현을 쓴다면 차이가 발생한다.

let newNum1 = number1++;
let newNum2 = ++number2;

console.log(newNum1); // 2
console.log(newNum2); // 3

컴퓨터는 왼쪽에서 오른쪽으로 처리하기때문에 첫번째 표현처리 순서는 아래와 같다.

  1. newNum1 = number1 즉, number1에 할당된 값을 newNum1에 적용한다. 이로 인해 newNum1에는 2라는 값이 할당된다.
  2. number1++가 계산되어 number1은 3이라는 값으로 바뀐다.

두번째 표현식은 위의 1, 2번의 순서가 변하면서, newNum2 = number2 = 3이 된다.

Javascript의 사칙연산은 우리가 학교에서 배우는 순서와 똑같아, 컴퓨터 역시도 덧셈(+), 뺄셈(-) 보다 곱셈(*), 나눗셈(/)이 우선순위로 계산된다.

이를 막기 위해 우리가 소괄호()를 써서 계산의 우선순위를 정하는 것처럼 자신이 표현하는 정확한 값이 나오길 원하면, 소괄호를 이용하면된다.

좋은 웹페이지 즐겨찾기