javascript - Javascript 中数组索引不会越界

标签 javascript html arrays error-handling indexoutofboundsexception

我正在创建一个 JavaScript 应用程序,我想在其中生成 ArrayIndexOutOfBound 异常。我创建了一个大小为 5 的数组,并尝试将斐波那契数列中的元素插入其中。理想情况下,它应该在插入第 6 个元素后引发异常,但它不会引发任何异常。请检查代码并告诉我您的看法。 附上代码和输出的屏幕截图。

<!DOCTYPE html>
<html>

<head>
    <title>Error Handling Demo</title>
    <script type="text/javascript">

    var i = 1;
    var fibona = [];
    fibona.length=5;

        function generateNext()
        {   
            if(i>1)
                {
                    number1.value = number2.value;
                    number2.value = number3.value;
                }

            number3.value = parseInt(number1.value) + parseInt(number2.value);
            i++;

            fibona.push({'num1':number1.value, 'num2':number2.value, 'num3':number3.value});
        }

    </script>
</head>

<body>
    <h1>Fibonacci Series Game</h1>

    <p>
        Number 1 :
        <input type = "number" name = "number1" value = 0 id = "num1">
    </p>

    <p>
        Number 2 :
        <input type = "number" name = "number2" value = 1 id = "num2">
    </p>

    <p>
        Next Number :
        <input type = "number" name = "number3" id = "num3">
    </p>

    <p>
        <input type = "button" name = "generatenext" value = "Generate Next Number" onclick = "generateNext()">
    </p>

</body>

</html>

enter image description here

最佳答案

您遇到的是 push 方法的正常行为。

The push() method adds new items to the end of an array, and returns the new length.

Note: The new item(s) will be added at the end of the array.

Note: This method changes the length of the array.

请在此处阅读更多信息 http://www.w3schools.com/jsref/jsref_push.asp

更新: 如果您希望能够限制数组的最大长度,最简单的方法是使用常量变量设置来保存数组的长度,并用数组的长度检查该值。如果您仍然想在索引大于此最大值时抛出异常,那么您可以通过抛出异常来实现,如下所示抛出'您的异常消息'

关于javascript - Javascript 中数组索引不会越界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39199910/

相关文章:

ios - 快速调用中的额外参数

c++ - 将 `std::vector` 替换为 `std::array`

javascript - 在 v-for 中选择选择框的第一个选项

HTML/CSS 在页面底部添加水平滚动条

javascript - 如何检查名称属性作为数组的复选框列表中是否至少选中了一个复选框

html - 在有 child 条件的情况下实现 Less

javascript - 如何找到 typedArray 的类型?

javascript - 函数语句需要 AngularJS 服务中的名称

javascript - 单击抽屉导航 Bootstrap 时不显示侧面导航栏

javascript - 在另一个 Action 之后 react Redux 调度 Action