Javascript 기초 04 - 타입 변환
in Devlog on Javascript
타입 캐스팅(Type Casting) : 명시적으로 타입을 바꾸는 경우
let a = 26 let b = String(a)
강제 변환(Coercion) : 암시적으로 타입을 바꾸는 경우
let a = 26 let b = 26 + ""
ToString
문자열이 아닌 값을 문자열로 변환
let a = true;
a = a.toString()
let b = 26
b = b.toString()
console.log(a) // "true"
console.log(typeof a) // string
console.log(b) // "26"
console.log(typeof b) // string
console.log(Object.prototype.toString.call(a)) // [object String]
console.log(Object.prototype.toString.call(b)) // [object String]
null
, undefined
원시값은 타입 캐스팅을 사용할 수 없으니 주의해야 한다.
let a = undefined;
a = a.toString() // Cannot read property 'toString' of undefined
let b = null;
b = b.toString() // Cannot read property 'toString' of null
타입 캐스팅은 불가능 하나, 강제 변환은 가능하다.
let a = undefined;
a = a+""
console.log(a) // "undefined"
let b = null;
b = b+""
console.log(b) // "null"
ToNumber
숫자가 아닌 값을 수식 연산이 가능한 숫자
로 변환 한다.
- true , false , null 은 정해진 숫자를 반환 한다.
let a = true
let b = false
let c = null
console.log(Number(a)) // 1
console.log(Number(b)) // 0
console.log(Number(c)) // 0
- 문자열이 변환에 실패할 경우 , undefined 의 경우 NaN(Not-A-Number) 을 반환한다.
let a = "26"
let b = "이십육"
let c = undefined
let d = ["1", "2"]
let e = { key: "value" }
console.log(Number(a)) // 26
console.log(Number(b)) // NaN
console.log(Number(c)) // NaN
console.log(Number(d)) // NaN
console.log(Number(e)) // NaN
문자열을 숫자로 변환하는 함수로
parseInt("문자열")
도 있다.Number()
는 변환 실패시 즉시 NaN을 반환하지만 parseInt 는 숫자로 시작시 숫자가 끝나는 지점까지 변환 한다.
let a = "26은 한글로 이십육"
let b = "26은 한글로 이십육"
let c = "이십육은 숫자로 26"
console.log(Number(a)) // NaN
console.log(parseInt(b)) // 26
console.log(parseInt(c)) // NaN