본문 바로가기

Modern Js

[Js] 형변환에 대해서 알아보자.

반응형
SMALL

형변환 


문자형 변환
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





















반응형
LIST