Truthy 와 Falsy는 자바 스크립트에서 bloolean을 기대하는 구문에서 각 값이 true와 flase 중 어떤 값을 가지게 되냐를 나타내는 값입니다. 즉, if 또는 while 등의 구문에서 사용되는 값이 true인지 false 인지를 나타내는 것입니다.
Falsy 한 값을 먼저 보자면 0, -0, 0n(BigInt), " ", null, undefined, NaN
이 있습니다.
Truthy한 값은 Falsy한 값을 제외한 모든 값이라고 보면 됩니다.
0 // falsy => false
'' // falsy => false
123 // truthy => true
'hello world' // truthy => true
[] // truthy => true -> String으로 변환되지 않음.
[1, 2, 3] // truthy => true -> String으로 변환되지 않음.
truthy와 falsy를 결정하는 과정에서는 형변환이 발생하지 않습니다. 즉 array의 경우 String으로 형변환 되지 않습니다.
if([]) {
console.log('정상'); // [] = truthy, 출력 O
}
if(0) {
console.log('안 나옵니다.'); // 0 = falsy, 출력 X
}