在 angular.js 中,有一些代码片段使用 !!
来检查一个值在 if 条件下是否为真。
这是最佳做法吗?我完全理解返回值或其他任务!用于确保类型为 bool 值。但是条件检查也是如此吗?
if (!!value) {
element[name] = true;
element.setAttribute(name, lowercasedName);
} else {
element[name] = false;
element.removeAttribute(lowercasedName);
}
最佳答案
!!value
通常用作将 value
强制为 true
或 false
的方法,分别取决于它是真还是假。
在控制流语句中,例如 if (value) { ... }
或 while (value) { ... }
,前缀 value
和 !!
没有效果,因为根据定义,控制流语句已经将 value
强制为 true
或错误
。三元运算符表达式 value 中的条件也是如此?一个:b
。
使用 !!value
将 value
强制为 true
或 false
是惯用的,但当然应该只在随附的语言结构没有多余的情况下完成。
关于javascript - 是 !!检查 if 语句中真值的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26906294/