运算符优先级相关问题
ant-design上有这么个代码,其中,
let mode = undefined, filterOption=()=>{console.log(1111)}, 那 filterOption 最终是什么?
const filteredOptions: OptionsType = filterOptions(mergedSearchValue, mergedOptions, { optionFilterProp, filterOption: mode === 'combobox' && filterOption === undefined ? () => true : filterOption, });
初始看是这样的 mode === 'combobox' 为 false 短路求值,所以 filterOption 为 false。
其实 mode === 'combobox' 返回false, 然后判断 false ? ()=>true : filterOption, 所以最后结果是 filterOption
那问题来了,假如 mode = 'combobox' 呢?
不短路,filterOption !==undefined 所以返回 ()=>{console.log(1111)}
类似的问题:
https://blog.csdn.net/weixin_44623040/article/details/106306526