You’re testing different things here.
if (arr)
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. Internally, arr.toString()
is called, which returns an empty string ""
.
This is because toString
called on Array returns Array.join()
, and empty string is one of falsy values in JavaScript.