运算符优先级相关问题

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

posted @ 2020-06-29 17:08  土豆zhang  阅读(146)  评论(0编辑  收藏  举报