• Julian
    link
    fedilink
    71 year ago

    Ok some of these I understand but what the fuck. Why.

    • @RagingToad@feddit.nl
      link
      fedilink
      51 year ago

      I’m not sure if you really want to know, but:

      greater than, smaller than, will cast the type so it will be 0>0 which is false, ofcourse. 0>=0 is true.

      Now == will first compare types, they are different types so it’s false.

      Also I’m a JavaScript Dev and if I ever see someone I work with use these kind of hacks I’m never working together with them again unless they apologize a lot and wash their dirty typing hands with… acid? :-)

      • @hstde@lemmy.fmhy.ml
        link
        fedilink
        11 year ago

        Not a JavaScript dev here, but I work with it. Doesn’t “==” do type coercion, though? Isn’t that why “===” exists?

        As far as I know the operators “>=” and “<=” are implemented as the negation of “<” and “>” respectively. Why: because when you are working with sticky ordered sets, like natural numbers, those operators work.

        Thus “0<=0” -> “!(0>0)” -> “!(false)” -> “true”

        Correct me if my thinking is wrong though.

        • @Xanvial
          link
          11 year ago

          So will null <= 0 returns true?

          Why tho

  • @Mars@beehaw.org
    link
    fedilink
    01 year ago

    I know it’s a joke, but it’s an old one and it doesn’t make a lot of sense in this day and age.

    Why are you comparing null to numbers? Shouldn’t you be assuring your values are valid first? Why are you using the “cast everything to the type you see fit and compare” operator?

    Other languages would simply fail. Once more JavaScript greatest sin is not throwing an exception when you ask it to do things that don’t make sense.

    • @OsrsNeedsF2P@lemmy.mlOP
      link
      fedilink
      11 year ago

      Shouldn’t you be assuring your values are valid first?

      Step 1: Get to prod

      Step 2-10: Add features

      Step 11: Sell the company before it bites you

  • Björn Tantau
    link
    fedilink
    01 year ago

    Can someone explain this? I mean, the last result. Usually I can at least understand Javascript’s or PHP’s quirks. But this time I’m stumped.

    • mycus
      link
      fedilink
      01 year ago

      JS null and undefined shenanigans


      basically:

      1. bigger an lesser comparison types convert null to zero, so is zero bigger or lesser than zero? no
      2. == is fucky and to it null only equals undefined and undefined only equals null (and themselves), so no
      3. is zero bigger than or equal to zero? yeah