做 ”!!”在 GTM 脚本中有特殊含义?

Does "!!" have a special meaning in GTM scripts?

我在 GTM 脚本中遇到了以下语法,但不太确定它应该如何工作:

if(!!{{var1}} && !!{{var2}}){
    // . . . other code here 
}

现在,我知道 {{}} 语法用于捕获变量值,但我找不到任何对 !! 运算符的引用(如果有的话)。

它是否代表了GTM中的某些东西,或者它只是草率的编程并且可以删除这些!!?我应该提一下,此脚本中还有更多 if 语句,它们看起来都很正常。这是唯一具有这些 !! 的。有什么想法吗?

这不是特定于 GTM 脚本的,它是将对象强制转换为布尔值的标准 JavaScript 做法。在 JavaScript 中有 null 或 undefined 等虚假值(list here),这些在使用后将是 false !! (bang bang),否则为真。

请注意,这不是一个特殊的操作数,只是! (NOT) 使用两次强制类型为布尔值。

这里有一篇很好的文章解释得很好:https://medium.com/@edplatomail/js-double-bang-or-the-not-operator-part-40e55d089bf0

回答你的问题,不是马虎编程,不应该被删除。