javascript - 带有 and 的内联代码不起作用,但使用常规 if 有效
问题描述
我有以下代码,它给了我编译错误:
for(var i in test){
(this.watcherFailureCount> 10) && break
}
但是,以下工作:
if(this.watcherFailureCount> 10)
{
break
}
我在这里错过了什么吗?为什么第一个不适合我?
解决方案
&& 尝试评估您的表达式并将其返回值转换为布尔值。您使用的 break 是控制循环的关键字,不应在表达式中使用。
有些语言允许这样做,但似乎 js 不允许。公平地说,不这样做是可以的,因为它具有误导性。想象一下这样的条件:a && b && break && c && d = a。
第一个选项没有真正的好处,除非您使用 codegolf 或其他东西,并且如果您使用 codegolf 您选择了错误的语言:)。
推荐阅读
- android - 终止 agora 呼叫时,Flutter 应用程序在发布模式下崩溃
- javascript - 检查文本内容是否为 iFrame
- java - 输入字符串的 NumberFormatException:“”
- azure - Azure KeyVault Secret Get 引发 CredentialUnavailableException
- python - 如何操纵STR?
- http - 动态路由的文件服务器目录
- javascript - For 循环未执行(TypeScript)
- python - 试图为 raspbian 制作一个 tkinter python 应用程序
- c# - 帕斯卡三角法在第 14 行后不起作用
- spring - Spring MVC 重定向到支付提供商在返回时创建新会话