Javascript - 一切都超出范围

标签 javascript

所以,我有这段代码:

<script>

    //We'll pass you an array of two numbers. 
    //Return the sum of those two numbers plus the sum of all the numbers 
    //between them. 
    //The lowest number will not always come first.
    function sumAll(arr) {

        var number1 = arr[0];
        var number2 = arr[1];

        var lower_number;
        var bigger_number;


        if (number2 < number1) {
            number2 = lower_number;
            number1 = bigger_number;

        } else {
            number1 = lower_number;
            number2 = bigger_number;

        }
        var i;

        var something;

        for (i = lower_number; i < bigger_number; i++) {

            something = i + something;
            console.log(i);

        }
        return something;
    }
    sumAll([1, 4]);
    sumAll([4, 1]);

</script>

这行不通。当我尝试在控制台中查看结果(如 isomething)时,我只看到那里有 undefined

有什么建议吗?

此外,我如何才能实际验证函数的结果?我是 JS 的新手。

谢谢。

最佳答案

console.log(i)正在显示 undefined因为那是变量的值。这不是范围问题。

您从未将任何内容分配给 lower_number .所以当你做 i = lower_number ,你在做i = undefined ,这就是记录的内容。

实际上,你永远不应该进入循环,因为i < bigger_number总是会失败,因为 ibigger_number都是undefined , 和 undefined < undefined是假的。

原因是你之前的赋值是倒过来的。本节:

    if (number2 < number1) {
        number2 = lower_number;
        number1 = bigger_number;
    } else {
        number1 = lower_number;
        number2 = bigger_number;
    }

应该是:

    if (number2 < number1) {
        lower_number = number2;
        bigger_number = number1;
    } else {
        lower_number = number1;
        bigger_number = number2;
    }

分配的顺序总是destination = source; (这对大多数编程语言都很常见)。

您可以通过记录函数调用来验证函数的结果:

console.log(sumAll([1, 4]));

关于Javascript - 一切都超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59494781/

相关文章:

php - 使用 javascript 将下拉框的值设置为最后提交的值

javascript - 为什么要生成渲染空图像文件的 Canvas ?

javascript - jQuery JTable 如何拖动行

javascript - 在 angularjs 中创建自定义控件的推荐方法

javascript - Object.defineProperty 在 IE8 中不起作用

javascript - 在mvc中使用jquery自动完成文本框

javascript - 当可见性改变时,IFrame 滚动条在 chrome 上消失

php - 是否可以只搜索一页?

javascript - 合并多个 parse.com 查询的结果

javascript - Bootstrap 模式不允许链接?