首页 > 解决方案 > 请解释为什么会发生这种情况?

问题描述

有人可以向我解释为什么当我没有在函数中传递参数时我得到 1 个输出,而且当我传递参数时我得到 120 两次。

let n = 5;
let arr = [1,2,3,4,5,6];

function multiply(arr, n) {
    let product = 1;
    for (let i = 0; i < n; ++i) {
        product *= arr[i];
        console.log(product);
    }
    return product;
}

console.log(multiply(arr, n));

let n = 5;
let arr = [1,2,3,4,5,6];

function multiply(arr, n) {
    let product = 1;
    for (let i = 0; i < n; ++i) {
        product *= arr[i];
        console.log(product);
    }
    return product;
}

console.log(multiply());

标签: javascript

解决方案


由于您没有在第二种情况下传递arr, 和n参数,因此它们是undefined. 所以 for 循环永远不会运行,因此 product 的值保持原样,由函数返回, as 1


推荐阅读