• kryptonianCodeMonkey@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      6 hours ago

      Its the min value of the input params, or Infinity.

      And the reason it’s Infinity If there is no input, for better or worse, under the hood the method is assigning a variable, min, the highest value possible and then comparing it to each element in the list, reassigning it when it encounters an element lower than its value at the time. So it will obviously always be reassigned if there are any elements at all (if they’re less than Infinity, I guess). But if there are no elements, it’s never reassigned, and thus returns Infinity. It could have just signed min to the first element instead if Infinity, but that would lead to a runtime error when min was run without a function. If you’re not going to throw a runtime error though, it makes sense for min to return Infinity because, what other number could you return that couldn’t actually be the minimum

    • wise_pancake@lemmy.ca
      link
      fedilink
      arrow-up
      13
      ·
      edit-2
      1 day ago

      Math.min.length is 2, which weakly signals that it’s designed to handle at least two parameters

      Why would they even define this value?

      Note: I’m not a js dev, do most functions have length?

      • CameronDev
        link
        fedilink
        arrow-up
        13
        ·
        1 day ago

        I am also not a JS dev, we possibly aren’t brain damaged enough to understand the perfection.

        • Venator@lemmy.nz
          link
          fedilink
          arrow-up
          6
          ·
          21 hours ago

          Most people don’t use JS because they think it’s perfect… they use it because it’s the language that works on web browsers… or because thier coworkers made something in it… or because the library that does what they want uses it…

          • CameronDev
            link
            fedilink
            arrow-up
            3
            ·
            20 hours ago

            For such a terrible language, it really has staying power…

            • bss03@infosec.pub
              link
              fedilink
              English
              arrow-up
              3
              ·
              13 hours ago

              JS is the machine code of the web. Fewer and fewer people might write it directly, but it will live as long as the web platform does.

      • bss03@infosec.pub
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        13 hours ago

        All functions built with function name(args) { body } syntax have a length based on the form of args. Other ways to create functions might set length (I’m not sure). Most of the functions provided by the runtime environment do have a length, usually based on the number of “required” arguments.