Javascript 1 - (2) 형변환

Jnnsu·2023년 11월 8일
1
post-thumbnail

✅ 형 변환

let x = `문자`
console.log(typeof x);
console.log(Boolean(x));
console.log(typeof Boolean(x));

/*결과값
string
true
boolean
*/ 
  • 문자를 boolean으로 형변환하면 기본적으로 true로 인식한다.
  • 문자가 ''와 같이 공백없이 비어있을 때에는 false로 인식한다.(' '은 true로 인식)
let y  = true
console.log(Number(y));
console.log(typeof y);
console.log(typeof Number(y));

let z = NaN
console.log(Boolean(z));

/*결과값
1
boolean
number
false
*/ 
  • boolean을 number로 형변환 하면 true = 1, false = 0 으로 인식한다.
  • NaN은 boolean에서 false로 인식한다.(이런 값들을 falsy값 이라고 한다.)

✅ falsy 값

boolean에서 false로 인식하는 값들을 falsy 값 이라고 한다.

  • false
  • 0
  • NaN
  • ''
  • null
  • undefined

✅ 자동 형변환

  • 덧셈기호(+)는 기본적으로 number보다 string을 더하는 기능을 우선시한다.(덧셈기호가 아닌 경우에는 string을 number로 형변환 해서 계산한다.)
  • boolean의 true는 1로, false는 0으로 변환해서 계산한다.
  • NaN이 포함되는 계산의 경우, 결과값도 언제나 NaN으로 도출된다.
console.log(4 + '2')
console.log(4 + 2)
console.log(4 - true)
console.log(4 * false)
console.log(4 / '2')
console.log('4' ** true)
console.log(4 % 'two') 

/*결과값
42
6
3
0
2
4
NaN
*/ 
  • 두개의 값이 비교가 불가능한 경우엔 false
console.log('two' >= 1)

/*결과값
false
*/ 
  • ===(일치)와 ==(동등)의 차이는 자료형까지 비교하는가이다.
    1 == '1' 은 자동 형변환 되어 값이 같으므로 true이지만, 1 === '1' 은 자동 형변환이 되지 않고 자료형까지 비교하기에 fase이다.
    !==(불일치)와 !=(부등)에서도 같다.
console.log(1 === '1')
console.log(1 === true)
console.log(1 == '1')
console.log(1 == true)

/*결과값
false
false
true
true
*/ 

🟨 헷갈릴만한 것

  1. Number('안녕하세요')는 NaN이지만, 아이러니하게도 NaN도 자료형은 number이다..
console.log(typeof Number('안녕하세요'));

/*결과값
number
*/ 
  1. 'false'는 문자열이기에 boolean에서 true로 인식한다. 문자열인지 불린형인지 잘 구분하자!!
console.log(Boolean('false'));

/*결과값
true
*/ 
  1. Boolean(typeof false)에서 typeof false 는 'boolean'이라는 문자열로 반환된다. 그렇기에 Boolean('boolean')은 true이다.
console.log(Boolean(typeof false));

/*결과값
true
*/ 

0개의 댓글