Javascript 为什么这个for循环不起作用?

Javascript 为什么这个for循环不起作用?,javascript,jquery,for-loop,Javascript,Jquery,For Loop,以下两者之间的确切区别是什么: <p id="test"></p> <script> function findMax() { var i; var max = -Infinity; for(i=0;i<arguments.length;i++) { if(arguments[i] > max) { max = arguments[i]; } } r

以下两者之间的确切区别是什么:

<p id="test"></p>

<script>

function findMax() {
    var i;
    var max = -Infinity;
    for(i=0;i<arguments.length;i++) {
        if(arguments[i] > max) {
            max = arguments[i];
        }
    }
    return max;
}

document.getElementById('test').innerHTML = findMax(32, 133, 83, 163);

</script>

函数findMax(){ var i; var max=-无穷大; 对于(i=0;i最大值){ max=参数[i]; } } 返回最大值; } document.getElementById('test').innerHTML=findMax(32,133,83,163);
以及:

函数findMax(){ var i=0; var max=-无穷大; for(;imax){ max=参数[i]; } } 返回最大值; } document.getElementById('test').innerHTML=findMax(32,133,83,163);
也许我错过了一些课程,但是第一节课输出163,这是应该的,而第二节课输出0。控制台说

SyntaxError:返回不在函数中

返回最大值


为什么第二个返回最低值,而第一个返回最高值?

对于第二个,您忘记了开头括号
{
和初始值
i=0


您也可以简单地使用
Math.max()

作为第二个选项,您忘记了开头括号
{
和初始值
i=0


您也可以简单地使用
Math.max()

在缺少
{
的瞬间,尝试:

function findMax() {
    var i;
    var max = -Infinity;
    for(; i < arguments.length ; i++) {
        if(arguments[i] > max) {
            max = arguments[i];
        }
    }
    return max;
}
函数findMax(){
var i;
var max=-无穷大;
for(;imax){
max=参数[i];
}
}
返回最大值;
}

在第二秒内,您缺少一个
{
,请尝试:

function findMax() {
    var i;
    var max = -Infinity;
    for(; i < arguments.length ; i++) {
        if(arguments[i] > max) {
            max = arguments[i];
        }
    }
    return max;
}
函数findMax(){
var i;
var max=-无穷大;
for(;imax){
max=参数[i];
}
}
返回最大值;
}
而第二个输出为0

您没有将i初始化为
0

这意味着我没有定义,
undefined+1
NaN

SyntaxError:返回不在函数中

在for循环之后,您错过了一个大括号,因此return语句超出了函数定义

function findMax() {
    var i;
    var max = -Infinity;
    for(i = 0; i < arguments.length ; i++)
    {//this was missed
        if(arguments[i] > max) 
        {
            max = arguments[i];
        }
    }
    return max;
}
函数findMax(){
var i;
var max=-无穷大;
对于(i=0;imax)
{
max=参数[i];
}
}
返回最大值;
}
而第二个输出为0

您没有将i初始化为
0

这意味着我没有定义,
undefined+1
NaN

SyntaxError:返回不在函数中

在for循环之后,您错过了一个大括号,因此return语句超出了函数定义

function findMax() {
    var i;
    var max = -Infinity;
    for(i = 0; i < arguments.length ; i++)
    {//this was missed
        if(arguments[i] > max) 
        {
            max = arguments[i];
        }
    }
    return max;
}
函数findMax(){
var i;
var max=-无穷大;
对于(i=0;imax)
{
max=参数[i];
}
}
返回最大值;
}

在第二个示例中,您在(;i中漏掉了“i”另外:你可能忘记了一个大括号,或者你有一个额外的大括号。通过编辑你的问题,你已经删除了这个问题……你的整个问题是你缺少了一个大括号brace@super11现在这两个在Chromey为我输出相同的值。现在,你的问题毫无意义。唯一的区别是
i
的赋值。它要么在在初始化部分中,或在声明中。其余部分相同。在第二个部分中,您在(;i中遗漏了“i”另外:你可能忘记了一个大括号,或者你有一个额外的大括号。通过编辑你的问题,你已经删除了这个问题……你的整个问题是你缺少了一个大括号brace@super11现在这两个在Chromey为我输出相同的值。现在,你的问题毫无意义。唯一的区别是
i
的赋值。它要么在对于初始化部分,或在声明处。其余部分相同。