JavaScript内置语言功能或API函数,在严格模式下引用undefined属性时返回undefined

JavaScript内置语言功能或API函数,在严格模式下引用undefined属性时返回undefined,javascript,properties,reference,undefined,typeerror,Javascript,Properties,Reference,Undefined,Typeerror,在严格模式下引用undefined属性时,是否有任何JavaScript内置语言功能或API函数返回undefined e、 g.,: undefined.a 抛出一个类型错误 我可以定义以下getProperty函数来做我想做的事情,我更喜欢使用JavaScript语言功能或内置API函数,而不是定义我自己的函数: function getProperty(o, key) {return o && o[key];} getProperty(undefined, 'a');

在严格模式下引用undefined属性时,是否有任何JavaScript内置语言功能或API函数返回undefined

e、 g.,:

undefined.a
抛出一个
类型错误

我可以定义以下
getProperty
函数来做我想做的事情,我更喜欢使用JavaScript语言功能或内置API函数,而不是定义我自己的函数:

function getProperty(o, key) {return o && o[key];}
getProperty(undefined, 'a');

我不知道这对您来说是否足够整洁,但您不需要函数-您可以按如下方式使用
&&

undefined && undefined.a

(因为如果可以将
&&
转换为
false,则返回其左侧操作数,否则返回其右侧操作数。)

这是编写getProperty函数的更简洁的方法,但我仍然会使用getProperty函数(其中包含代码),因为getProperty(o,'a')引用了o一次,而o&&o.a引用了o两次,因此可能会意外地使用更晚的样式编写o&&p.a。不过,我将用您改进的代码更新我的问题。谢谢,不客气。我理解你的担心,但我想我至少应该提一下,以防万一。(我想,最坏的情况下,你也可以像现在这样使用它……)