在阅读lodash源代码时,我看到了:
this.__chain__ = !!chainAll;
为什么会在!!
参数上使用chainAll
?
我认为这是检测虚假值或处理不同JavaScript版本的更安全的方法,但是想知道它保护的场景。
答案 0 :(得分:4)
!!
构造是将任何JavaScript
表达式转换为的简单方法
它的Boolean
等价物。例如:!!"something" === true
,而!!0 === false
答案 1 :(得分:0)
JS使用动态类型作为变量。感谢这个技巧,如果它不是布尔值,你将变量转换为布尔值,如果它是布尔值,它不会修改该值