链运算符;如果读取对象内部的某个属性,往往需要判断一下,属性的上层对象是否存在。层层判断非常麻烦
const firstName = (message
&& message.body
&& message.body.user
&& message.body.user.firstName) || 'default';
链判断运算符?.
,简化上面的写法。直接在链式调用的时候判断,左侧的对象是否为null
或undefined
。如果是的,就不再往下运算,而是返回undefined
。
const firstName = message?.body?.user?.firstName || 'default';
const fooValue = myForm.querySelector('input[name=foo]')?.value