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

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

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

        • marcos@lemmy.world
          link
          fedilink
          arrow-up
          6
          ·
          4 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.

          • FiskFisk33@startrek.website
            link
            fedilink
            arrow-up
            2
            ·
            edit-2
            4 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