in the expression
"Cat" && "Dog"
// => "Dog"
Because you’re using &&
, JavaScript is promising you that it will verify that both sides of the expression are true
. In this case, "Dog"
is the just the last evaluated thing.
To be more explicit, you could do something like
var c = "Cat" != null && "Dog" != null
It’s a little bit more wordy, but this boils down to
var c = true && true
console.log(c)
// => true
If you want a simple shortcut for the boolean, use the Boolean
constructor –
var c = Boolean("Cat" && "Dog")
console.log(c)
// => true
If you just use a simple REPL or JavaScript console, you’d be able to see this output very easily.
Per one of the comments below
Using ||
, JavaScript is promising you that at least one of the sides is true
. Since “Cat” is true, it stops there and returns “Cat”. This is known as Short-circuit evaluation