javascript - 为什么 for(var i in arguments) 不起作用?

标签 javascript loops arguments key-value

我是 JavaScript 新手。我想弄清楚为什么这不起作用:

function myFunction(){
    document.getElementById("result").value=add(1,2);
}
function add(){
    var sum = 0;
    for(var i in arguments)
        sum += i;
    return sum;
}

这会输出 001。为什么?

最佳答案

您正在迭代键,执行此操作:

function add(){
    var sum = 0;
    for(var i in arguments)
        sum += arguments[i];
    return sum;
}

更具体地说,键是字符串,"0""1",因此您的响应是初始 0 和后续键的串联。

此外,如果您对现代平台上的 javascript 感兴趣,下面的内容非常简洁明了。

function add(){
    return [].reduce.call(arguments, function(a, b) {
        return a+b;
    });
}
console.log(add(1,2));

关于javascript - 为什么 for(var i in arguments) 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17689650/

相关文章:

javascript - 如何在 HTML5 视频标签中播放 F4V 视频

c - 使用递归打印控制台 "picture"

javascript - 语法错误 : missing ) after argument list in cart. js

javascript - 函数调用不起作用

Javascript JSON 组子属性名称

javascript - javascript onclick 函数不起作用

function - Excel IF 语句中的范围

excel 2010 vba循环通过声明的变量语法导致编译错误变量未定义

Python 对象初始化错误。还是我误解了对象的工作原理?

Laravel:传递的函数 0 的参数太少,而预期的正是 1”