자바스크립트의 충격적인 수학 표현식
콘솔 창에 어떠한 값이 나올지 생각해 보셨나요?
저는 당연히 둘다 2가 나올 줄 알았지만... 정답은 2와 1이 나옵니다. (믿지 못하시겠다면 직접 확인해보세요ㅎㅎ)
이것이 왜 이렇게 되는지 확인해 보았더니...
바로 이러한 2단계 스텝을 통해 진행이 되더라고요.
먼저, 앞에 있는 newNum 이 num의 1을 할당 받고
그 다음으로 num에 +1 이 되는 원리입니다.
만약에 둘다 2라는 값이 나오게 하려면
let newNum = ++num 이라고 작성해야 우리가 생각하는 값이 나오더라고요. (충격 ㅁㅇㅁ)
String + Number
서로 다른 type인 String + number를 결과 값으로 만들 때는 항상 주의해야합니다.
String과 Number형을 더하면 항상 String 형으로 변환됩니다.
console.log('2더하기 2는' +2 +2) 라고 구현을 했을 때, 당연히? '2더하기 2는 4' 라고 나올 줄 알았지만
'2더하기 2는 22' 라고 구현이 됩니다.
그렇다면 어떻게 해야 2+2가 4로 될까요?
괄호를 하나 추가해주면 저희가 생각하는 '2더하기 2는 4' 가 됩니다.(간단하죠)
== 과 === 차이점 (동치 연산자)
==는 Equal Operator , ===는 Strict Equal Operator이다.
==는 a==b라고 할 때, a와 b의 값이 같은지를 비교해서, 같으면 true, 다르면 false라고 한다.
하지만 ===는 Strict, 엄격한 Equal Operator 로써, 값과 값의 종류가 모두 같은지를 비교해서, 같으면 true, 다르면 false라고 한다.
string, number, boolean type으로 같은지를 확인해야만 true 의 값을 반환한다는 이야기입니다.
변수 선언 할당이 아니라 어떤 값이 같은지를 비교하는 if 문 같은 것에서는 = 하나만 붙이는 것이 아니라 == 이나 ===을 붙여서 정확히 확인하시길 바랍니다.
비교 연산자가 있을 때는, 비교연산자 기준으로 왼쪽/오른쪽 나눠서 코드를 실행하게 됩니다. 위에 작성한 수학 연산처럼 따로따로 하는 것이 아니라..(복잡합니다)
'코딩 개발 > Javascript' 카테고리의 다른 글
JS - 만(滿) 나이 계산하기 (0) | 2022.10.19 |
---|---|
JS - 배열 내 최솟값 찾기 (0) | 2022.10.19 |
Javascript - 단어 나타나기 (0) | 2022.10.11 |
JavaScript - 시계 구현 (0) | 2022.10.09 |
Javascript - 데이터 타입과 변수 (1) | 2022.09.19 |