+ !! if语句中的运算符

杰克

我正在查看angularjs工厂的代码,以更好地了解其工作方式。该代码包含一个if我不完全理解语句。

在plnkr演示中,作者写道:

if ((+!!config.template) + (+!!config.templateUrl) !== 1) {
  throw new Error('Expected modal to have exactly one of either `template` or `templateUrl`');
}

在github仓库中它略有不同:

if (!(!config.template ^ !config.templateUrl)) {
  throw new Error('Expected modal to have exactly one of either `template` or `templateUrl`');
}

显然,通过错误消息,它正在检查是否存在两者之一。我只是不确定如何得出结论。我无法找到有关^或的任何信息+!

我的问题是:如果声明有效,这如何处理?^+!+!!特异性)

马特·鲍尔

!!将值转换为布尔值(truefalse)。 +然后转换该布尔值的数,或者1true0为假。

> +true
1
> +false
0

就个人而言,当处理两个布尔值时,写这样的代码会更清晰:

if (!config.template == !config.templateUrl) {
  throw ...
}

显然,代码的清晰度和可读性受到了谴责。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python:print()语句中的%运算符

来自分类Dev

Python If语句中的运算符

来自分类Dev

Revit语句中的运算符错误

来自分类Dev

C中的IF语句中的运算符++

来自分类Dev

“ IN”语句中的“ CASE WHEN”运算符

来自分类Dev

if语句中的按位运算符

来自分类Dev

TSQL NOT运算符在where语句中

来自分类Dev

Python:print()语句中的%运算符

来自分类Dev

(+)=“ +等于”运算符在SQL语句中

来自分类Dev

C中的IF语句中的运算符++

来自分类Dev

Python If语句中的运算符

来自分类Dev

if语句中的赋值运算符

来自分类Dev

可以在switch语句中使用then运算符

来自分类Dev

(+)= SQL语句中的“加等于”运算符

来自分类Dev

如何在nginx的“ if”语句中使用“或”运算符?

来自分类Dev

在python条件语句中使用模运算符

来自分类Dev

选择语句中的三元运算符

来自分类Dev

在PHP'switch'语句中使用比较运算符

来自分类Dev

在“ if”语句中对字符串使用“或”运算符

来自分类Dev

增量运算符如何在if语句中工作?

来自分类Dev

在IF语句中使用模运算符

来自分类Dev

jQuery语句中的三元运算符

来自分类Dev

for循环的增量语句中的奇数位运算符

来自分类Dev

SQL语句中的多个BETWEEN和LIMIT运算符

来自分类Dev

条件语句中的按位运算符

来自分类Dev

返回语句中的三元运算符

来自分类Dev

减数运算符在while语句中如何工作?

来自分类Dev

插入语句中缺少运算符

来自分类Dev

在“ if”语句中对字符串使用“或”运算符