I think we need all support we can get to fight Google on this, so I welcome Brave here actually.

Use this link to avoid going to Twitter:

https://nitter.kavin.rocks/BrendanEich/status/1684561924191842304

you are viewing a single comment's thread
view the rest of the comments
[–] 2 points 3 years ago* (1 child)

yes, that is a solid logic, one that I also applied and expected to be the result.

that is until a Vue component started complaining that I am passing in a number for a prop that expects a boolean.

turns out the result of that code is actually: 0, because javascript

of course if you flip it and try

false && 0 && 1

then you get false, because that's what you really want in a language, where && behaves differently depending on what is on what side.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 2 points 3 years ago* (last edited 3 years ago)

    I was incorrect; the first part of my answer was my initial guess, in which I thought a boolean was returned; this is not explicitly the case. I checked and found what you were saying in the second part of my answer.

    You could use strict equality operators in a conditional to verify types before the main condition, or use Typescript if that's your thing. Types are cool and great and important for a lot of scenarios (used them both in Java and Python), but I rarely run into issues with the script-level stuff I make in JavaScript.

  • source
  • parent