-
기본 연산자와 형 변환JavaScript 2021. 8. 12. 00:15
"" + 1 + 0
"" - 1 + 0
true + false
6 / "3"
"2" * "3"
4 + 5 + "px"
"$" + 4 + 5
"4" - 2
"4px" - 2
7 / 0
" -9 " + 5
" -9 " - 5
null + 1
undefined + 1
" \t \n" - 2
위 질문들에 답을 잘찾는다면 연산자에 의한 형변환을 이해한것이다.
"" + 1 + 0 // ""는 문자열. 문자열과 숫자의 덧셈은 문자형으로 형 변환이 되어 문자열이 합쳐진다. "1" + 0. "10".
"" - 1 + 0 // ""는 문자열. 문자열과 숫자의 뺄셈은 숫자형으로 형 변환이 되기 때문에 ""은 0이다. 0 -1 +0. -1.
true + false // 1 + 0 = 1.
6 / "3" // 2
"2" * "3" // 6
4 + 5 + "px" // 9 + "px", "9px"
"$" + 4 + 5 // "$4" + 5, "$45"
"4" - 2 // 2
"4px" - 2 // NaN - 2. NaN
7 / 0 // infinite
" -9 " + 5 // " -9 5"
" -9 " - 5 // -14
null + 1 // 0 + 1. 1.
undefined + 1 // NaN + 1. NaN
" \t \n" - 2 // 문자열이 숫자형으로 변할 땐 문자열 앞뒤의 공백이 삭제됩니다. 뺄셈 연산자 앞의 피연산자는 공백을 만드는 문자 \t와 \n, 그 사이의 “일반적인” 공백으로 구성됩니다. 따라서 " \t \n"는 숫자형으로 변환 시 길이가 0인 문자열로 취급되어 숫자 0이 됩니다.
728x90'JavaScript' 카테고리의 다른 글
Asynchronous JavaScript (1) - 싱글 스레드, blocking(블로킹) 현상 (0) 2021.08.16 로그인 구현 (0) 2021.08.15 OR 연산자의 피연산자가 alert 라면? (0) 2021.08.15 비교 연산자 (0) 2021.08.12 querySelector, querySelectorAll 차이 (0) 2021.01.20