我在条件运算符的真实子句中得到了未定义属性的这种意外行为:
示例:Javascript:
var obj = undefined;
console.log("hello world" + (obj) ? obj.Name.toString(): "Object not defined");
预期的行为是得到一个日志条目,上面写着hello worldObject
“未定义,而是抛出错误:SCRIPT5007: Unable to get value of the property 'Name': object is null or undefined
。这怎么可能,检查对象,它不应该执行 htis coe 路径。一个工作示例是:
var obj = undefined;
console.log("hello world" + ((obj) ? obj.Name.toString(): "Object not defined"));