코드로보시죠
[JavaScript-12] 형 변환 함수를 쓰지 않았는데 지 혼자 형변환 해버리네 본문
자바스크립트의 빡침 포인트 중 하나랄까요!
Number, String, Boolean 함수를 써서 형 변환을 해주지 않아도,
일부 경우에 있어서 자바스크립트가 자기 마음대로 일정 규칙에 따라 형변환을 해서
겉보기엔 오류인 명령어들도 실행시켜버리는데요,
코드로 보시죠.
console.log('1' + 2)
//12
지금 보시면, 문자열과 숫자를 더하고 있죠?
파이썬이나 기타 언어에선 상상도 할 수 없는 일입니다. 무조건 에러죠 저건.
저렇게 프로그래밍 해두면 진짜 뺨따구를 엄청 맞는데요.
놀랍게도 자바스크립트는 12라는 결과를 내뱉습니다.
+연산을 숫자와 문자끼리 할 경우, 둘 다 문자열로 자동으로 형 변환을 해버리고, 연산을 수행해버립니다.
이 부분 꼭 기억해두기.
그 외에도, 숫자로 변환이 가능한 모든 것들에 대해서는 숫자로 결과를 내뱉어요.
코드로 보시죠
console.log(1 - true) // 0
제가 true는 1의 값을 갖는다 말씀드렸죠,
그래서, 자바스크립트는 true를 1로 지 맘대로 바꿔버립니다.
그래서 위의 코드는 에러가 나지 않는다는거!
참고로, Number(true)를 한다고 1이 되는건 아닙니다!
숫자와 불린을 연산하는 경우에만, 불린이 자동적으로 숫자로 바뀐다는 점!
'[JavaScript] 코드잇과 함께!' 카테고리의 다른 글
[JavaScript-14] 템플릿 문자열 `${}` (0) | 2023.09.24 |
---|---|
[JavaScript-13] ==와 ===차이 (2) | 2023.09.24 |
[JavaScript-11] 형 변환 (0) | 2023.09.24 |
[JavaScript-10] typeof연산자로 자료형 확인하기 (0) | 2023.09.24 |
[JavaScript-09] 불린(boolean) 연산 (0) | 2023.09.24 |