-
20221016 TIL 신기한 JS세계TIL 2022. 10. 17. 11:39
JS는 예상과 다른 결과를 보여주는 경우가 위의 경우처럼 많다.
왜 저런 결과가 나오는지 모를 때는 JS가 이상하다고 생각했었는데,
JS가 자동으로 타입 변환을 해주는 과정(coercion)을 이해하면
그나마 JS의 직관과 다른 부분들을 예상할 수 있다.
자동 형변환 규칙
1. string + 무언가
무언가가 string으로 변환되어 문자열끼리 연결된다.
ex. 9 + “1” === “91”
1. +이외의 연산
-, *, /, %등의 연산은 number타입으로 모두 변환되어 연산된다.
ex. “1” - “1” === 0
91 - “1” === 90
true * “3” === 3
1. boolean + number
boolean이 number로 형변환된다.
true → 1, false → 0
ex. true + 1 === 2
1. ==
같은 타입이라면 ===와 동일하게 연산이 진행된다.
만약 같은 타입이 아니라면 null이나 undefined는 null이나 undefined와 비교될 때만 true이고 아닐 때는 false를 반환한다.
만약 같은 타입이 아니고 null, undefined나 symbol이 아니라면 숫자로 변환되어 비교된다.
ex.
10 == ‘10’
true == 1
밈의 모든 것을 이 규칙들만으로 설명할 수는 없지만, 이 규칙들을 알면 그래도 많은 자동형변환을 예상할 수 있다.
하지만 코딩을 할 때는 항상 명확하게 type casting을 이용하는 게 가독성도 좋고 예상하기도 쉬우니 자동 형변환에 의지하지 말자.'TIL' 카테고리의 다른 글
20221019 TIL 왜일까 (0) 2022.10.19 20221018 TIL 반환을 하자!!! (0) 2022.10.18 20221015 TIL Node.js에서 패키지를 실행 방법 총정리 (0) 2022.10.17 20221017 TIL 핸드폰으로 코딩을 해보았다. (0) 2022.10.17 20221014 TIL sort와 친해진 하루 (0) 2022.10.14