04.Type conversion

 

 

console.log(1 == true);			// true
console.log(NaN == true);		// false
console.log(undefined == true);	// false
console.log(null == true);		// false
console.log("" == true);		// false (빈 string은 제로바이트. 0으로 변환된다.)


console.log(55 + true);			// 56 (true는 1로 변환된다.)
console.log(55 + "true");		// "55true" (숫자에 문자열을 더하면 문자열이 된다.)
console.log(10 + 55 + "true");	// "65true" (왼쪽부터 계산이 이루어지므로 더하기 이후 형변환.)


// '=='는 형변환이 일어나지만, '==='는 형변환이 일어나지 않는다. 

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

console.log("1" == true);	// true ( boolean은 ==을 만나면 숫자값으로 형변환.)
console.log("1" == 1);		// true ( "1" 은 1로 형변환.)
console.log("true" == 1);	// false ("true"는 숫자 1로 형변환이 될수 없음.)
parseInt("true");			// NaN
parseInt(true);			// parseInt에는 형변환 기능 없음 단순히 숫자로 변환하는 작업만을 함.
parseInt("123");		// 123

 

Boolean은 '=='을 만나면 형변환이 일어난다. 

'=='는 형변환을 유발하며, '==='는 형변환을 유발하지 않는다.

 

따라서 '==' 보다는 '==='이것을 쓰는 것이 안전하다. 

 

 

+ Recent posts