소소한 JS 팁(1)
재미로 풀어본 JS quiz 사이트인데 소소하게 팁들을 알게되어 정리해본다!
https://javascriptquiz.com/?fbclid=IwAR31L9U2qjkB_krPoQtn2R_F6RShcez6-hZzwmf8rdTHWmaOmGQJEkaUdrw
📓 Quiz 1
1 | const isTrue = true == []; |
📝 A: 0
- 빈 배열은 당연히 truthy라고 생각해서
isTrue
는true
가 된다고 생각했고,isFalse
는false
라고 생각해서1 + 0
으로 답은 1일 줄 알았다. - 하지만
true == []
는false
- 구글링한 결과, 아래 stack overflow에서 답을 찾을 수 있었다.
if ([])
called on object (Array is instance of Object in JS) will check if the object is present, and returns true/false.
When you call if (arr == false) you compare values of this object and the primitive false value.
1 | if([]) 'true' // 'true' |
위의 if문에서는 객체가 존재하는지 확인하고 값을 반환한다.
하지만 문제처럼 값을 비교하게 된다면 객체의 값과 비교하는 것이므로 false
를 반환하는 것이다.
실제로 true == ['1']
은 true
이다.