gpt4 book ai didi

字符串中的 JavaScript 条件运算符会引发错误

转载 作者:行者123 更新时间:2023-11-28 20:27:59 25 4
gpt4 key购买 nike

我在条件运​​算符的 true 子句中遇到了未定义属性的意外行为:

示例:JavaScript:

var obj = undefined;

console.log("hello world" + (obj) ? obj.Name.toString(): "Object not defined");

Fiddle

预期的行为是获取一个日志条目,显示hello worldObject“未定义”,而是抛出错误:SCRIPT5007:无法获取属性“Name”的值:对象为 null 或undefined 。这是怎么回事,该对象已被检查,它永远不应该执行 htis coe 路径。一个有效的例子是:

var obj = undefined;

console.log("hello world" + ((obj) ? obj.Name.toString(): "Object not defined"));

Fiddle

最佳答案

尝试这个条件:

console.log("hello world" + ((obj || {}).Name) ? ...);

或者也

console.log("hello world" + ((obj || 0).Name) ? ...);

因此您将检查 objobj.Name
事实上,您定义的条件仅检查 obj 而不是 obj.Name

您可以在 ajaxian 上阅读有关此类情况的解释

关于字符串中的 JavaScript 条件运算符会引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16986116/

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