자바스크립트는 정말 이상해..

더미벨·2023년 7월 28일
0

console.log(("b" + "a" + +"a" + "a").toLowerCase())

이거 정답이 왜 "banana"?
정말 화가 난다 화가 나...


우선 string 앞에 + 연산자가 붙으면 자바스크립트는 해당 string을 숫자로 변환하려고 하는데 "a"는 숫자로 변환할 수가 없으므로 NaN(Not a Number)를 반환하는 것이다.
그 후 앞의 string과 NaN을 + 연산자로 합칠 때 NaN이 그대로 string 타입으로 변환되며 "NaN"이 되기 때문에 결과값이 "baNaNa"가 되고 toLowerCase()를 통해 소문자로 바꿔주면 "banana"가 나온다.

banana가 가장 유명한 밈이긴 하지만 이 외에도 예상치 못한 결과가 도출되는 수많은 예제가 있다.

궁금하다면 아래 사이트를 방문해서 문제를 풀어보시길.. (동기가 알려줬다)
사이트 이름이 "자바스크립트는이상해"이다..^^

https://jsisweird.com/

결론: 타입스크립트를 쓰자!

profile
프론트엔드 개발자👩‍💻

1개의 댓글

comment-user-thumbnail
2023년 7월 28일

좋은 글 감사합니다. 자주 올게요 :)

답글 달기