본문 바로가기
Coding/JavaScript

1-4 . Introduction to JavaScript - Arithmetic Operators (feat. -0)

by Ask & Solve 2021. 10. 28.
 

1-3 . Introduction to JavaScript - null과 undefined의 차이점

1-2 . Introduction to JavaScript - Comments, Data type 오늘도 역시 쉽게 쉽게, 주석과 자료형입니다. 주석은 뭐 많은 언어들에서 쓰이는 기본형이네요. 한 줄 주석은 // 여러 줄 주석은 /* ... */ console.log..

asknsolve.com


이번에는 Arithmetic Operators, 산술 연산자에 대하여 정리를 해 보겠습니다.

오늘도 변함없이 아주 쉽게 갑니다.

 

산술연산자는 우리가 사용하는 더하기, 빼기, 곱하기, 나누기가 있고,

컴퓨터에서 사용하는 나머지 연산자까지 하여 총 5가지가 있죠.

 

나머지 연산자만 예를 들어보면

20 % 3

20을 3으로 나누었을 때, 몫은 6이고 나머지는 2이니 이 식의 결과값은 2가 됩니다.

 

12 % 4

12을 4로 나누면, 몫이 3이고 나머지는 없으니 이 식의 결과값은 0이 됩니다.

 

부호는 다른 언어들과 똑같이,

더하기는 +

빼기는 -

곱하기는 *

나누기는 /

나머지 연산자는 %

를 사용합니다.

 

뭐 다를 게 없네요 ^^;


그렇다면, 여기서 궁금했던 점

나머지 연산자에서, 음수값을 나누면 나머지는 어떻게 될까요?

 

예를 들어, 

5 % 20 은 5가 될텐데,

-5 % 20 은 과연 어떤 값이 나올까요?

 

정답은?

.

.

.

 

-5 입니다.

 

원리는 간단합니다.

 

When the first operand is a negative value, the return value will always be negative.

즉, 피제수라고 하나요?

나누어지는 숫자가 음수라면 나머지 또한 음수가 됩니다.

 

그리고 그 때의 나머지는

양수값, 즉 이 식에서는 5 % 20을 했을 때의 결과값에

마이너스 부호를 붙이면 됩니다.

 

그럼, 다른 것을 해 볼까요?

-50 % 20

50 나누기 20은 몫이 2이고 나머지가 10이니,

여기에 마이너스 부호를 붙이면 정답은

-10 이 됩니다.

 

그렇다면 마지막으로

-500 % 20 은?

나머지가 없으니 0이 되겠죠?

 

그리고, 여기서도 마이너스 부호를 붙이는 원칙이 적용되어

답은 -0 이라고 하네요.

(Even zero will have negative sign to it in JavaScript.)


0도 +0이 있고, -0이 있다는 사실...

이번에 처음 알았습니다.

 

도대체 어떻게 다른 건지 검색해 보았는데요.

 

Is Negative Zero (-0) a Number in JavaScript?

JavaScript has a feature called signed zeroes, where positive zero (+0) is the same as unsigned zero (0), but negative zero (-0) is …

medium.com

길고... 영어입니다...

결론적으로는,

+0이나 -0은 사실상 같은 것이지만, 

차이는 0으로 나누었을 때,

+0 은 +무한대

-0 은 -무한대

라는 것 같네요.

// To compare +0 and -0, divide by each value and compare the result:
var positiveZero = +0
var negativeZero = -0
console.log(positiveZero === negativeZero) // true
console.log(1/positiveZero === 1/negativeZero) // false

대충 이런 느낌?

 

지난 번에는 null과 undefined를 비교했고,

오늘은 의도치않게 +0과 -0을 비교하게 되었네요.

 

아주 큰 의미는 없는 것들이니, 그냥 이런 것이 있다더라 정도로 넘어가고.

 

다음번에는 아주 자주 사용하는 String Concatenation에 대해서 정리해 보겠습니다.

 

 

1 -5 . Introduction to JavaScript - String Concatenation

1-4 . Introduction to JavaScript - Arithmetic Operators (feat. -0) 1-3 . Introduction to JavaScript - null과 undefined의 차이점 1-2 . Introduction to JavaScript - Comments, Data type 오늘도 역시 쉽..

asknsolve.com

 

댓글