티스토리 뷰

💥 자바스크립트의 마법

어제 배웠던 req.params 를 이용해 자바스크립트를 좀 더 배웠다!

① 이 코드의 결과는 맨 위의 주석에도 나왔듯이 {"num : "18"} 이었다.

1이 숫자가 아닌 문자열로 표시되는 것이다.

 

그렇다면 이 코드는 어떻게 나올까?

② 이 코드의 결과는 {"test" : 1} 이었다...

즉, 문자열이 아닌 숫자로 표시된다는 것.

 

그럼 이렇게 중간에

let number = req.params.n - 10
if ((number) > 5) {
     console.log(number)
     console.log('number의 값이 5보다 큽니다.')

라는 코드를 넣었을 때, 어떻게 표시가 될까?

①의 코드 결과물은 숫자가 아닌 문자열로 나오니까 연산이 될 수 없다.

그럼 에러가 뜰까? 결과를 봐보자!

아까와 동일하게 {"num" : "18"} 으로 문자열로 표시된다. 그럼 console.log는 오류가 뜨겠군 후후..

? 어림없지

 

예상을 뒤엎고, req.params.n => 18을 넣었으니 18 - 10 = 8 / 8 > 5 => true

number값과 'number의 값이 5보다 큽니다.' 라는 텍스트를 콘솔창에 띄워버렸다.

 

즉, 무슨말이냐..... req.params.n은 문자열이 아닌 숫자로 인식됐다는 거다.

자바스크립트는 문자로 된 숫자를 진짜 숫자처럼 취급을 하고있는 것이다.

 

자바스크립트가 아닌 다른 언어에선 절대 있을 수 없는 일이다ㅋㅋㅋㅋ... 

사실 이렇게 그냥 써도 된다. 문제는 없다... 그래도 정확하게 문자를 숫자로 바꾸는 법을 써보겠다!

 

💥 parseInt

parseInt 는 문자열을 숫자로 바꿔주는 역할을 한다.

더도말고 덜도말고 일단 해보는 게 답 😃

문자열로 표시됐던 req.params.n 을 parseInt로 묶어준 뒤 아래의 req.params.n도 number로 바꾸고 실행했다.

캬... 진짜 "8" 이 아닌 8 로 표시가 됐다. 문자열을 숫자로 바꾸는 법! parseInt 기억해두자 :)

 

앞서 말했듯이, 굳이굳이 이렇게 안해도 문제는 없다. 에러도 안 뜨고 편한대로 사용해도된다!
하지만 본인같이 왕초보 라면.. 이렇게 제대로 하나하나 배우는 게 훨씬 이해가 쉽다고 생각한다 :)
뭔가 FM대로 해야할 것 같달까🙄
하여튼 이번 parseInt도 꽤나 재밌는 수업이었다👍
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함