형변환
문자형 변환
alert() 함수는 매개변수로 문자형을 받기 때문에 alert(value)에서 value는 문자형이어야 함
만약 다른 형의 값을 전달 받으면 이 값을 문자형으로 자동 변환됨
let value = true
alert(typeof(value)); //boolean
value = String(value)
alert(typeof(value)) //string
String() 함수를 사용하면 전달받은 값을 문자형으로 변활할 수 있음
숫자형 변환
수학과 관련된 함수와 표현식에서 자동으로 발생하며
주로 숫자형이 아닌 값에 나누기(/)를 적용한 경우가 대표적임
alert('6' / '2') // 3
// 문자형으로 입력된 두 수가 자동으로 숫자형으로 변환되어서 계산이 진행됨
let str = '123'
alert(typeof(str)) //string
let num = Number(str)
alert(typeof(num)) //number
form은 문자 기반이기 때문에 form을 통해서 값을 입력받는 경우 명시적 형변환이 필수임
또한 숫자 이외의 글자를 숫자로 형변환할 경우 NaN이 반환되는데 이는 형변환이 실패한 경우이다.
특이한 경우
alert(Number(' 123 '))
//123 문자열의 처음과 끝 공백을제거하고 문자열이 없다면 0, 그렇지 않다면 문자열에서 숫자를 읽어냅니다.
변환에 실패할 경우 NaN이 반환
alert(Number(null)) // 0
alert(Number(undefined)) // NaN
alert(Number(true)) // 1
alert(Number(false)) // 0
불린형 변환
논리 연산을 수행할 때 발생
숫자0, 빈문자열, null, undefined, NaN 등 직관적으로 비어있다고 느껴지는 값들은 false임
그 외 나머지들은 모두 true
alert(Boolean(1)) // true
alert(Boolean(0))
alert(Boolean(null))
alert(Boolean(undefined))
alert(Boolean(NaN))
alert(Boolean("hello")) // true
alert(Boolean(""))
좀 헷갈리는게 문자열 "0"은 true이고 " "공백이 있는 문자열도 true로 나타냄
alert(Boolean("0")) //true
alert(Boolean(" ")) //true
'Modern Js' 카테고리의 다른 글
[Js] 로그인 폼을 만들어보자. (0) | 2023.05.26 |
---|---|
[Js] if와 '?'를 사용한 조건문에 대해서 알아보자. (0) | 2023.05.24 |
[Js] 대화상자에 대해서 알아보자. (0) | 2023.05.23 |
[Js] 자료형에 대해서 알아보자. (0) | 2023.05.22 |