• @[email protected]
    link
    fedilink
    263 months ago
    (+x) % 2 == 0
    

    If you forget for a second it’s Javascript, the language will turn back and bite you.

      • @mindbleach
        link
        133 months ago

        JS is a language where [1,2,11].sort() returns [1,11,2].

        And if you use a variable instead of a bare array, half the functions are side-effectful, as determined by coin toss.

        And if you try declaring that variable with new Array(3).map() then it will ignore all 3 indices, because undefined is real enough to be enumerated, but not real enough to be iterated, because, and I cannot overstress the importance of this principle in Javascript, go fuck yourself. Go fuck yourself is why.

        • @[email protected]
          link
          fedilink
          43 months ago

          typeof(null) == ‘object’

          Because some people think planning an entirely new language should take less than 2 weeks. 10 days, in this case.

          See wat for more.

        • @[email protected]
          link
          fedilink
          43 months ago

          Array(3) doesn’t create [undefined, undefined, undefined, ]; it creates [/* hole */, /* hole */, /* hole */, ]. The holes don’t set any property on the array whatsoever, so they are skipped when iterating. How this makes sense, I can’t tell you.

          • @mindbleach
            link
            33 months ago

            Yet the array contains exactly three nothings.

            It’s like a zen koan.

          • @mindbleach
            link
            13 months ago

            The Wimp Lo doctrine is a valid theory for why JS is Like That.

            If there’s two ways to do something, JS picks all three.

      • @[email protected]
        link
        fedilink
        63 months ago

        This evaluates to NaN for some reason:

        '10' % 0
        

        Since JS doesn’t really differentiate strings from numbers, except on the places it does, it makes sense to make sure you are working with numbers.

        • @[email protected]
          link
          fedilink
          2
          edit-2
          3 months ago

          Oh right that. I guess I was visualizing a scenario where you already checked for it being a number, such as a Number.isInteger(x)

          also, that suprises me a lot, you’d think this is one of the places where it treats stuff as numbers

      • @carpelbridgesyndrome
        link
        English
        53 months ago

        Not a JS dev either but ===.

        Not really sure what the (+x) is about