Hacker News new | ask | show | jobs
by eropple 1107 days ago
I've never seen `!!!` in JavaScript, and I do a lot of it. Care to share?
2 comments

Shouldn't have made an example in the if-statement as it is mostly useless there. But triple ! is very common to negate-and-convert a possibly falsy statement (undefined, null, false/true):

const x: boolean | undefined | null = getValue(); const not_x: boolean = !!!y

I added TS type annotation for clarity, although could be inferred if `getValue` is typed accordingly.

I've seen `!!` and I've seen `!`, but what would `!!!` get you here that the other two don't?
negation plus cast to boolean. See this for more info: https://stackoverflow.com/questions/21154510/the-use-of-the-...
And line breaks after return statement? Is that true? Haven't stumbled on that one. So this is probably misinformation.
No, that one is true. JS automatic semicolon insertion is dumb.

   return
     <p>
       A JSX paragraph
     </p>
is a common mistake from novices; it'll return void/undefined.

In TypeScript, at least, you get yelled at for this.