es6双重感叹号的含义

时间:2018-11-01 18:40:48

标签: javascript

在某些es6代码中,我看到以下内容:

let layer_combined = layers.map(getLayer).filter(l => !!l);

是什么意思!在filter()中返回?

1 个答案:

答案 0 :(得分:0)

这是一种使用双重否定转换为布尔值的方法。

单数!的否定会产生一个true / false值,但这与您想要的相反。双重否定会产生与原始意图匹配的真/假值。

尝试一下:

!!0 // false
!!1 // true
!!"test" // true
!!null // false