Javascript Js函数参数(数字列表中的最高值) 函数号(){ var qwe, zxc=-无穷大; //arguments.length==4,对吗? 对于(qwe=0;qwezxc){ //如果等于11的参数[qwe]大于-无穷大,则为真,对吗? zxc=arguments[qwe];//为什么输出变为25? } } return zxc;//是因为这个吗? } document.getElementById('test').innerHTML=number(13,10,25,11);

Javascript Js函数参数(数字列表中的最高值) 函数号(){ var qwe, zxc=-无穷大; //arguments.length==4,对吗? 对于(qwe=0;qwezxc){ //如果等于11的参数[qwe]大于-无穷大,则为真,对吗? zxc=arguments[qwe];//为什么输出变为25? } } return zxc;//是因为这个吗? } document.getElementById('test').innerHTML=number(13,10,25,11);,javascript,Javascript,为什么输出变为25?参数。长度等于4,因为您已发送了4个参数(13、10、25、11)。for循环迭代4个参数,然后查找参数[qwe]。让我们把它分解一下: 第一次通过for循环时,qwe=0,zxc=-Infinity,因此if语句的计算结果为true(参数[0]=13,参数13>-Infinity)。由于if语句的计算结果为true,我们现在计算if语句内部的逻辑,因此zxc现在设置为等于参数[0],即13 通过for循环的下一轮,qwe现在是1,zxc仍然是13,参数[qwe]=10(下一

为什么输出变为25?

参数。长度等于4,因为您已发送了4个参数(13、10、25、11)。for循环迭代4个参数,然后查找参数[qwe]。让我们把它分解一下:

  • 第一次通过for循环时,qwe=0,zxc=-Infinity,因此if语句的计算结果为true(参数[0]=13,参数13>-Infinity)。由于if语句的计算结果为true,我们现在计算if语句内部的逻辑,因此zxc现在设置为等于参数[0],即13
  • 通过for循环的下一轮,qwe现在是1,zxc仍然是13,参数[qwe]=10(下一个参数)。现在,参数[qwe]=10,它不大于zxc(13),因此if语句为false,并且if语句中的逻辑不被计算
  • 在for循环的下一次迭代中,qwe=2,zxc仍然是13,参数[qwe]=25(下一次迭代)。现在,参数[qwe]=25,大于zxc(13),因此if语句为true。因为if语句的计算结果为true,所以我们计算if语句内部的逻辑,现在zxc被设置为相等的参数[2],即25
  • 对于For循环的下一次也是最后一次迭代,qwe=3,参数[qwe]=11,zxc=25。因为参数[qwe]=11,不大于25,所以if语句的计算结果为false,而if语句中的逻辑不计算
    此时,qwe=参数长度,因此for循环结束。for循环结束后,我们返回zxc,此时为25。

    Arguments.length等于4,因为您已经发送了4个参数(13、10、25、11)。for循环迭代4个参数,然后查找参数[qwe]。让我们把它分解一下:

  • 第一次通过for循环时,qwe=0,zxc=-Infinity,因此if语句的计算结果为true(参数[0]=13,参数13>-Infinity)。由于if语句的计算结果为true,我们现在计算if语句内部的逻辑,因此zxc现在设置为等于参数[0],即13
  • 通过for循环的下一轮,qwe现在是1,zxc仍然是13,参数[qwe]=10(下一个参数)。现在,参数[qwe]=10,它不大于zxc(13),因此if语句为false,并且if语句中的逻辑不被计算
  • 在for循环的下一次迭代中,qwe=2,zxc仍然是13,参数[qwe]=25(下一次迭代)。现在,参数[qwe]=25,大于zxc(13),因此if语句为true。因为if语句的计算结果为true,所以我们计算if语句内部的逻辑,现在zxc被设置为相等的参数[2],即25
  • 对于For循环的下一次也是最后一次迭代,qwe=3,参数[qwe]=11,zxc=25。因为参数[qwe]=11,不大于25,所以if语句的计算结果为false,而if语句中的逻辑不计算
    此时,qwe=参数长度,因此for循环结束。for循环结束后,我们返回zxc,此时为25。

    此循环返回的是作为参数传递给函数的最大数。查看作为参数传递的数字:
    13、10、25、11

    循环将遍历这些传递的整数并比较它们。第一个索引(
    13
    在本例中)与负无穷大进行比较。因为它更大,所以
    zxc
    变量被重写(每次当前索引大于上一个索引时都会发生这种情况)。在您的例子中,
    25
    是参数列表中最大的整数,它是函数返回的最终值


    要测试它,将11改为29,看看会发生什么。25不再是最大的数字,也不会写入
    #test
    元素。

    此循环返回的是作为参数传递给函数的最大数字。查看作为参数传递的数字:
    13、10、25、11

    循环将遍历这些传递的整数并比较它们。第一个索引(
    13
    在本例中)与负无穷大进行比较。因为它更大,所以
    zxc
    变量被重写(每次当前索引大于上一个索引时都会发生这种情况)。在您的例子中,
    25
    是参数列表中最大的整数,它是函数返回的最终值


    要测试它,将11改为29,看看会发生什么。25不再是最大的数字,并且不会写入
    #test
    元素。

    预期的输出是什么?它返回25,因为这是传递给
    numbers()
    的参数中的最高值。。。您的代码遍历参数并选择最高值。我可能遗漏了一些内容,但此函数是否将每个传递的数字与zxc进行比较,并且仅在值大于zxc的现有值时修改zxc。因为11不大于25,zxc的值是25,因为那是最高的值?哈哈。谢谢你的解释。我终于明白了,兄弟们。我欠你的。如果你不知道代码的作用,你是怎么写的?O_O什么是预期的输出?它返回25,因为这是传递给
    numbers()
    的参数中的最高值。。。Y
    <html>
    <head>
    </head>
    <body>
    <p id="test"> </p>
    <script>
    
    function numbers() {
      var qwe,
      zxc = - Infinity;
      // arguments.length == 4 , right?
      for (qwe = 0; qwe < arguments.length; qwe++) {        
        if (arguments[qwe] > zxc) {
          // If arguments[qwe] which is equalto11isgreaterthan - Infinity--TRUE, right ?
          zxc = arguments[qwe]; // why does the output become 25 ?
        }
      }
      return zxc; // is it because of this ?
    }
    document.getElementById('test').innerHTML = numbers(13, 10, 25, 11);
    
    </script>
    </body>
    </html>