• marcos@lemmy.world
        link
        fedilink
        arrow-up
        4
        ·
        2 years ago
        (+x) % 2 == 0
        

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

          • marcos@lemmy.world
            link
            fedilink
            arrow-up
            3
            ·
            2 years 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.

          • mindbleach@sh.itjust.works
            link
            fedilink
            arrow-up
            2
            ·
            2 years 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.

            • Kindness@lemmy.ml
              link
              fedilink
              arrow-up
              2
              ·
              2 years 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.

            • PoolloverNathan@programming.dev
              link
              fedilink
              arrow-up
              2
              ·
              2 years 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.