• hackris@lemmy.ml
      link
      fedilink
      arrow-up
      27
      ·
      8 months ago

      If I was a JS programmer, I’d just write a bash script to download it every week for fun.

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

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

            • mindbleach
              link
              fedilink
              arrow-up
              14
              ·
              8 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.

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

              • PoolloverNathan@programming.dev
                link
                fedilink
                arrow-up
                5
                ·
                8 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
                  fedilink
                  arrow-up
                  1
                  ·
                  8 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.

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

      • Madlaine@feddit.de
        link
        fedilink
        arrow-up
        8
        ·
        8 months ago

        the is_even package does not provide much worth indeed because it simply negates is_odd and thereby all its benefit.

        It’s dependency is_odd on the other hand provides at least some additional checks (it also checks if the value is a valid integer below the max int value)

        And while I would indeed see uses for such methods (especially with the other checks, no simple oneliners) in some cases, especially in testing: This is stuff you write yourself, throw it in a e.g. NumberUtils class and everything is fine. You do never depend on an external library for that. The benefit (not spending a few seconds to write it) does not outweigh any of the drawbacks that come with external libraries.