#4 Type Coercion

최정환·2021년 7월 2일
0

📋 Type Coercion (유형 강제 변환 )


유형 강제 변환은 Value를 한 유형에서 다른 유형으로 변환하는 프로세스입니다. ex) 문자열을 숫자로, 객체를 Boolean으로

Primitive든 객체든 모든 유형은 유형 강제에 대한 유효한 주제입니다.

📋 명시적 강제, 암시적 강제

Javascript에서는 유형 변환을 강제라 부르기 때문에 암시적, 명시적 강제를 구별한다.

명시적 강제

코드를 보면 유형 변환이 의도적으로 발생하는 것이 명백한 경우
ex) Number(value), String(value)

암시적 강제

다른 유형간에 자동으로 변환될 수 있다.
유형 변환이 다른 의도의 부작용으로 발생하는 경우이다.


let a = 42;
let b = a + "";		// 암시적 강제 implicit

let c = String(a);	// 명시적 강제 explicit

console.log(25 - "1") // 24
console.log("" == true) // false 빈 String은 false
console.log(0 == true) // 0은 false
console.log(undefined,null,NaN == true) // false
console.log(true + false) // 1
console.log(12 / "6") // 2 
console.log(15 + 4 + "number") // 19number
console.log([1] > null) // true
console.log({}+[]+{}+[1]) // '0[object Object]1'

==이 boolean을 만나면 숫자로 변환된다.


console.log("1" == 1) // true
 
console.log("true" == true) // false

💡 ===은 type coercion(강제 규칙)을 피할 수 있다.

console.log("1" === 1) // false
console.log(true === 1) // false

0개의 댓글