• @Tenkard@lemmy.ml
    link
    fedilink
    641 year ago
    1. You can call it “Java” to enrage other programmers
    2. You can compare numbers against strings without wasting time converting them
      • @luciferofastora@lemmy.zip
        link
        fedilink
        11 year ago

        But what if I don’t want strict comparison? What if my frontend contains a text field for a numeric input and I wanna manually check against each possible valid input value if (input_val == 1) {...} else if (input_val == 2) {...} else if... without having to convert it first or check that it’s actually a number or fix my frontend?

        (I’m sure there are valid use cases for non-strict comparison, I just can’t think of one right now)

        • @PrettyFlyForAFatGuy@feddit.uk
          link
          fedilink
          4
          edit-2
          1 year ago

          why wouldn’t you just convert inline? (Number(input_val) === 2)

          Converting would mean you could use a switch statement with your example rather than an if else ladder

          switch(Number(input_val)) {
            case 1:
              doTheFirstThing();
            break;
            case 2:
              doTheSecondThing();
            break;
            case 3:
              doTheThirdThing();
            break;
          }
          
          • @luciferofastora@lemmy.zip
            link
            fedilink
            -1
            edit-2
            1 year ago

            If you’re looking for good code, you missed the point of my comment 😄

            If I was looking for an enumeration of valid inputs, I’d make it a selection box rather than a text field that’s supposed to contain a number and give the selections reasonable names. If I want an integral quantity, I’d use a number input field.

            If I have no control over the frontend, that means I’m writing a backend in JS for a bullshit frontend, and no amount of good coding practice is going to salvage this mess.

            I’m also blessedly far away from WebDev now. I work in Data Analytics and if I ever have to do any of this for a living, something has gone very wrong.

            Converting texts into numbers or dates still haunts me though - fuck text inputs for numbers and dates.

      • @nxdefiant@startrek.website
        link
        fedilink
        5
        edit-2
        1 year ago

        JavaScript: :wide eyed and smiling: Sure why not! You’re the boss!

        Python: Sighing and downing half a bottle of Advil: Sure. Why not, you’re the boss.

  • @kevincox@lemmy.ml
    link
    fedilink
    211 year ago
    1. Is available to be used in website scripting.
    2. Not quite as full of footguns as PHP (although it is close).
  • Norgur
    link
    fedilink
    21 year ago

    You can make your speakers go BRRRRRRRRR via Home Assistant with it

  • udon
    link
    fedilink
    711 year ago
    1. it’s easy to make fun of
    2. it makes every other programming language look better in comparison
    • kamen
      link
      fedilink
      101 year ago

      This must be a “hold my beer” kind of joke and someone wanting to see how far they can take it.

    • @Drusenija@lemmy.world
      link
      fedilink
      831 year ago

      What’s even wilder is if you look at the code of that package, all it does is include the is-odd package and then return !is-odd. And the is-odd package isn’t much better, it does some basic checks on the input and then returns n % 2 === 1.

      • I thought I was missing something. JS is one of my main languages and I always just write the is-odd function myself since it’s like 10 characters. It boggles the mind that is-even has 176k weekly downloads

        • @gaael@lemmy.world
          link
          fedilink
          71 year ago

          Also there are 40-something packages depending on it, so I guess it gets pulled automatically when they are used.

        • @kevincox@lemmy.ml
          link
          fedilink
          191 year ago

          To be fair having a name can make things easier to read. I get that i % 2 == 0 is a common pattern and most programmers will quickly recognize what is happening. But isEven(i) is just that much easier to grok and leaves that brainpower to work on something else.

          But I would never import a package for it. I would just create a local helper for something this trivial.

          • Exactly what I would do if I had to reuse it, especially now since I know that adding a package would actually add 2. It all just seems so…inefficient

            • @kevincox@lemmy.ml
              link
              fedilink
              111 year ago

              Even if the code isn’t reused adding names to sub-expressions can be very valuable. Often times I introduce new functions or variables even if they are only used once so that I can give them a descriptive name which helps the reader more quickly understand what is happening.

              • Yeah, I do that with pretty much every separate operation in c# since our solutions are pretty big. Most of my JS scripts are just done in ServiceNow which are separated and named appropriately.

  • @vocornflakes@lemmy.world
    link
    fedilink
    English
    381 year ago
    1. Ubiquitous; insane amount of libraries and probably some of the best documentation of any language
    2. JS lambda function syntax is nice
  • Destide
    link
    fedilink
    English
    331 year ago

    It leads to typescript

    You get surprises from npm

    • @ByteJunk@lemmy.world
      link
      fedilink
      281 year ago

      I spent way too long today figuring out why my app was doing something that it’s NOT supposed to do on weekends.

      I read Luxon’s docs (pretty cool lib tbh) again and again, and tried everything I could think of to get isWeekend to return a sane result.

      Turns out I was pulling a somewhat older version of Luxon, where isWeekend didn’t exist. In any sane language, I expect I’d get a huge warning about a property that doesn’t exist, but alas…

      Typescript helps me keep my sanity, but juuuuust barely.

      • kamen
        link
        fedilink
        51 year ago

        Weren’t you getting runtime errors for the function not being found?

          • shastaxc
            link
            fedilink
            1
            edit-2
            1 year ago

            Falsy* because it was undefined

            However, their IDE should have highlighted it as an unknown property. Guess this guy is coding in notepad or vi.

            • Yep, thanks for correcting me. In fact, if they write something like

              if (day.isWeekend) {...}
              

              The block will never be executed with the old version of library

              • shastaxc
                link
                fedilink
                21 year ago

                Yeah that’s exactly what I think happened to him. He needs a better IDE and/or needs to stop copy/pasting code from stackoverflow or documentation that doesn’t match his library version.

                • @ByteJunk@lemmy.world
                  link
                  fedilink
                  01 year ago

                  My dude, you need to understand that all that anger and resentment, it is not you. It’s the years of JavaScript poisoning your mind.

                  In any case, that goes to my point. I would have to be saved by my IDE, when any sane language will blow up in your face as soon as you try to run it.

      • @mynameisigglepiggle@lemmy.world
        link
        fedilink
        20
        edit-2
        1 year ago

        If isWeekend doesn’t exist, then the weekend doesn’t exist, so it’s naturally false.

        That’s why JavaScript gets pushed so hard - it’s part of the capitalist agenda to keep us working 7 days a week

  • @Fargeol@lemmy.ml
    link
    fedilink
    45
    edit-2
    1 year ago

    1 - Easiest way to run a script in your browser
    2 - Always finds its way if inputs are bad
    Nan - undefined

  • SGG
    link
    fedilink
    English
    651 year ago
    1. It runs in browsers
    2. If you hate your co-workers, then they will also feel your pain.