在 JavaScript 中,在继续之前执行具有多个 or 的 if 评估所有语句
In JavaScript, does an if with multiple or's evaluate all statements before continuing?
在Javascript中,特别是Google的V8引擎中,在确定if比较的最终结果之前,在列表或条件"||"中编写多个函数调用是否执行所有函数?
例如
var path = 'C:''MyFiles''file.doc';
if ( path.match(/'.docx?/gi)
|| path.match(/'.xlsx?/gi)
|| path.match(/'.xml/gi)
|| path.match(/'.sql?/gi)) {
// Success
} else {
// Failed
}
所以我想问:这是否与"&&"条件的工作方式相似†但相反?计算结果为 TRUE 的第一个条件是否会导致跳过其余条件并执行成功逻辑?
我在我正在寻找的任何文档中都找不到这一点。这并不是说这会产生巨大的差异,但是我很好奇这实际上是如何执行的。
†(类似于 And '&&' 我的意思是,评估为 FALSE 的第一个条件将停止执行其余条件并继续执行其他条件。
你是对的。它被称为短路评估,它适用于||
和&&
。
对于||
,只有当左手边的计算结果为假时,才会对右手边进行求值。
对于&&
,只有当左侧的计算结果为true时,才会对右侧进行计算。
请注意,这不仅仅是为了性能。它还可以防止错误发生:有时,如果左侧与预期不符,评估右侧将不安全或毫无意义。
相关文章:
- 在Javascript中为if/else语句添加OR
- 在JavaScript / jQuery中,是否有一种更短的方法可以编写在同一个测试变量上具有许多OR的“if”语句
- javascript确定触发if语句的OR语句
- if语句上的Javascript OR
- Javascript if else语句OR条件错误
- Javascript If Condition with multiple OR and AND
- if 语句中多个 OR 表达式的简写
- JavaScript 中的 if 和 or 子句
- Javascript Multiple OR 在 if 条件下使用 for 循环
- Javascript if else 语句带有 OR 和 IS NOT
- 我应该使用 if-then-else 或 and or 运算符来检查 Javascript 中的空值吗?
- 可以 And and and or 替换 if()
- 在 JavaScript 中,在继续之前执行具有多个 or 的 if 评估所有语句
- 如何使用||(OR)编写重复次数较少的if语句
- JS HTML conditions if else or switch
- 对同一变量使用多个OR条件来简化IF语句
- 在 Javascript 中返回 'if' 语句与逻辑 OR
- 多个if和or条件
- 将IF语句与OR一起使用的更好方法
- 这个'OR'的正确语法是什么?和& # 39;和# 39;in this 'IF'声明