gpt4 book ai didi

javascript - 在没有 length 属性的变量上使用 .length 会导致崩溃

转载 作者:行者123 更新时间:2023-11-28 16:09:26 28 4
gpt4 key购买 nike

我有一个大数组,其中包含所有类型( bool 值,数组,null,...),并且我正在尝试访问它们的属性arr[i].length,但有些其中显然没有长度。

我不介意那些缺少长度的人是否返回未定义(我可以简单地使用arr[i].length||0或类似的东西),但是事实并非如此,整个事情会因某些值而崩溃(例如 nullundefined)。

var i, len, arr;

arr = [true, ["elm_0"], 99, "abc"]; //crashes if you add 'null' or 'undefined'

for(i = 0, len = arr.length ; i<len ; i++){
document.write(arr[i].length + "<br>");
}

document.write("I was executed");
  • 除了 nullundefined 之外,还有哪些变量会崩溃?
  • 如何防止这种情况发生?

最佳答案

您将收到一个 TypeError ,指出 undefined 没有属性。除了将其包装在 TypeError 的 try catch 中之外,您在这里无能为力。

请注意,这与引用计算结果为未定义的属性的属性将返回 ReferenceError 的原因相同:undefined 永远不应该有属性。

关于javascript - 在没有 length 属性的变量上使用 .length 会导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13544371/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com