JavaScript

JavaScript 형 변환

nminy 2023. 4. 8. 14:51

다양한 자료형을 다룰 수 있다. 이 자료형들은 서로 형변환이 가능(형태 > 바꾼다)

 

1. 암시적 형 변환(implicit coercion)

: 자바스크립트에서 자동으로 수행되는 형 변환이며, 일반적으로 연산자를 사용할 때 발생

1-1. 문자열 변환

: 문자열과 다른 데이터 타입이 더하기 연산자로 만나면 문자열이 우선 시 된다

  { }, null, nuderfined + '1' => 문자열

console.log(1 + "2") // "12"
console.log("1" + true) // "1true" // 더하기 연산자, 두가지 타입을 결합함
console.log("1" + {}) // "1[object Object]"
console.log("1" + null) // "1null"
console.log("1" + undefined) // "1undefined"

1-2. 숫자 변환

: 다른 연산자(-, / ,,,)가 나왔을 때는 항상 숫자가 우선 시 된다

:  문자열을 숫자로 변환. 이때, 빈 문자열("")이나 공백 문자열(" ")은 0으로 변환

console.log(1 - "2") // -1
console.log("2" * "3") // 6
console.log(4 + +"5") // 9

 

2. 명시적 형 변환(explicit coercion)

: 개발자가 직접 자료형을 변환

2-1. 불리언 변환

:  Boolean() 함수를 사용하여 불리언 값으로 변환

   0, 빈 문자열(""), null, undefined, NaN은 false로 변환. 그 외의 값은 true로 변환

console.log(Boolean(0)) // false
console.log(Boolean("")) // false
console.log(Boolean(null)) // false
console.log(Boolean(undefined)); // false
console.log(Boolean(NaN)) // false
console.log(Boolean("false")) // true
console.log(Boolean({})) // true // 객체는 값이 비어있더라도 true

2-2. 문자열 변환

: String() 함수를 사용하여 다른 자료형을 문자열로 변환

console.log(String(123)) // "123"
console.log(String(true)) // "true"
console.log(String(false)) // "false"
console.log(String(null)) // "null"
console.log(String(undefined)) // "undefined"
console.log(String({})) // "[object Object]"

2-3. 숫자 변환

console.log(Number("123")) // 123
console.log(Number("")) // 0
console.log(Number(" ")) // 0
console.log(Number(true)) // 1
console.log(Number(false)) // 0