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只是个字符串,所以这时报错
}
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.3k 阅读✓ 已解决
4 回答4.6k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
4 回答2.1k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
Optional Chaining
只负责null
/undefined
判断,不负责判断它是不是function
。如果
a
非null
非undefined
也非function
,a?.()
就会抛出错误。参见提案:https://github.com/tc39/propo...