JavaScript RangeError – 无效的数组长度
此JavaScript异常 无效的数组长度 在创建一个长度为负数或大于等于32的数组或ArrayBuffer时发生。如果手动设置length属性为负数或大于等于32的值,也会发生这个异常。
输出信息:
RangeError: Array length must be a finite positive integer (Edge)
RangeError: invalid array length (Firefox)
RangeError: Invalid array length (Chrome)
RangeError: Invalid array buffer length (Chrome)
错误类型:
RangeError
错误原因: 数组或ArrayBuffer的长度只能用无符号32位整数表示,这个整数只能存储从0到232-1的值。如果创建一个数组或ArrayBuffer时,数组的长度为负数或大于等于232,则会发生这个错误。
示例1: 在这个示例中,长度属性被设置为6,这是一个有效的值,因此没有发生错误。
<head>
<script src=
"https://code.jquery.com/jquery-3.5.0.js">
</script>
</head>
<body style="text-align: center;">
<h1 style="color: green;">
GeeksforGeeks
</h1>
<p>
JavaScript RangeError
Invalid array length
</p>
<button onclick="Geeks();">
click here
</button>
<p id="GFG_DOWN"></p>
<script>
var el_down = document.getElementById("GFG_DOWN");
function Geeks() {
try {
let a = [];
a.length = 6;
el_down.innerHTML =
"'Invalid array length' "+
"error has not occurred";
} catch (e) {
// Show the error in console
console.log(e);
el_down.innerHTML =
"'Invalid array length' "+
"error has occurred";
}
}
</script>
</body>
输出:
示例2: 在这个示例中,长度属性被设置为-1,这是一个无效的值,因此发生了错误。
<head>
<script src=
"https://code.jquery.com/jquery-3.5.0.js">
</script>
</head>
<body style="text-align: center;">
<h1 style="color: green;">
GeeksforGeeks
</h1>
<p>
JavaScript RangeError
Invalid array length
</p>
<button onclick="Geeks();">
click here
</button>
<p id="GFG_DOWN"></p>
<script>
var el_down = document.getElementById("GFG_DOWN");
function Geeks() {
try {
let a = [];
a.length = -1;
el_down.innerHTML =
"'Invalid array length' "+
"error has not occurred";
} catch (e) {
// Show the error in console
console.log(e);
el_down.innerHTML =
"'Invalid array length' "+
"error has occurred";
}
}
</script>
</body>
输出: