const name = undefined
console.log('🚀 ~ mounted ~ name', name?.()) // undefined
const name = 'mike'
console.log('🚀 ~ mounted ~ name', name?.()) // TypeError: name is not a function
这是为什么呢....
const name = undefined
console.log('🚀 ~ mounted ~ name', name?.()) // undefined
const name = 'mike'
console.log('🚀 ~ mounted ~ name', name?.()) // TypeError: name is not a function
这是为什么呢....
你的代码等价于
const name = 'mike'
if(name){//name是个字符串所以这里为true
console.log('🚀 ~ mounted ~ name', name.()) //name只是个字符串,所以这时报错
}
6 回答3.1k 阅读✓ 已解决
8 回答4.9k 阅读✓ 已解决
6 回答3.6k 阅读✓ 已解决
5 回答2.9k 阅读✓ 已解决
6 回答2.5k 阅读
5 回答6.5k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
Optional Chaining
只负责null
/undefined
判断,不负责判断它是不是function
。如果
a
非null
非undefined
也非function
,a?.()
就会抛出错误。参见提案:https://github.com/tc39/propo...