Srting()
문자형으로 변환
Number()
숫자형으로 변환
Boolean()
불린형으로 변환
<script>
"Hello" + "daydreamplace" = "Hello daydreamplace" //문자형 + 문자형 = 문자형
100 + 200 = 300 //숫자형 + 숫자형 = 숫자형
</script>
<script>
const mathScore = prompt("수학 몇점?");//90
const engScore = prompt("영어 몇점?");//80
const result = (mathScore + engScore) /2;
console.log(result)//4540
??????????????????????????????? 이상하다
------------------------------
onst mathScore = 90
const engScore = 80
const result = (mathScore + engScore) /2;
console.log(result)//85
</script>
prompt로 받은 값은 무조건 문자형이다.
문자와 문자를 더하면 그대로 이어져서 "9080"이라는 값이 나와 나누기 2를 했을 때 4540이 나왔다.
이때 / 표현식은 숫자형이 아니더라도 자동으로 숫자형으로 변환돼 /2가 정확하게 동작했다.
이러한 과정을 자동 형변환
이라고 한다.
자동으로 변환돼서 편리하다고 생각할 수 있지만, 이러한 작업은 원인을 찾기 힘든 에러를 발생시킬 수 있기 때문에 항상 의도를 가지고 원하는 타입으로 변환해주는 것이 좋다.
이러한 과정을 명시적 형변환
이라고 할 수 있다.
String()
은 타입을 문자형으로 바꿔준다.
<script>
String(3)
String(true)
String(false)
String(null)
String(undefined)
console.log(
String(3),
String(true),
String(false),
String(null),
String(undefined))
//"3""true""false""null""undefined"
//문자열로 잘 변환된 것을 알 수 있다.
</script>
Number()
은 타입을 숫자형으로 바꿔준다.
보통 사용자로부터 입력받은 문자형에 자주 사용된다.
<script>
Number("1234")
Number("1234asdf")
Number("true")
Number("false")
console.log(
Number("1234"),
Number("1234asdf"),
Number("true"),
Number("false"),
)
//1234 NaN 1 0
//숫자로 잘 변환된 것을 알 수 있다.
</script>
Boolean()
은 타입을 불린형으로 바꿔준다.
불린형의 변화는 보통 false의 케이스만 기억하면 된다
false
이외에는 모두 true
를 반환합니다.
<script>
Number(null);//0
Number(undefined)//NaN
Number(0);//false
Number('0')//true
Number('');//false
Number(' ')//true
</script>
그냥 외우는 편이 좋다.