我正在创建一个 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>
最佳答案
您遇到的是 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/