问题标签 [conditional-execution]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
225 浏览

javascript - 这种有条件的javascript加载方法是否具有任何价值?

我正在为 Web 应用程序构建一个多页前端。UI 的 javascript 很少,但我知道会有大量的 javascript 来处理后端,所以我尽我所能保持它尽可能稀疏和有限。

我想在只使用一个缩小的 js 文件时有条件地同步执行 javascript。我有一些全局函数,但大部分代码都是特定于页面的。每个页面在 body 元素中都有页面的 id。例如,about.html 有以下代码<html>...<body id="about">...</body></html>

我知道加载 javascript 的各种异步方法,例如require.js或什至$.getScript,但由于各种原因,我试图避免使用这种方法。因为我正在预处理 HTML,所以我也不想将脚本分解为每页(尽管我可以),因为它是一个小文件,我不想创建一堆不同的 <script>标签。我目前的解决方案是有条件地执行每页所需的 javascript,我正在这样做,如下例所示:

在构建过程中,所有的 js 都存储在单独的文件中,因此它看起来不像这里看起来那么笨拙,因为include filename.js条件的主体内部只有一个。

条件可防止在每一页上执行不必要的代码。但是,当我这样做时,我突然意识到这样做实际上可能没有任何好处。我读到$(window).load或者$('body').load 事件可能会导致与 冲突$(document).ready,并且它们都肯定更慢 - 就像window.onload(我测试过的)一样。我想这将是我解决这个问题的首选方式。我读的是真的吗?和/或,我在做什么有用吗?

0 投票
2 回答
263 浏览

vbscript - VBScript - Pass shell command using conditional execution with "choice" command

Not sure this is doable but I'm trying to write the following batch script in a single line:

The above script needs to be passed via the vbs run command into cmd. The following is the closest I can get it:

The above works as expected up until the choice command is reached then the script fails to execute the remainder correctly. Any help in resolving this is very much appreciated.

0 投票
2 回答
1890 浏览

reactjs - 如何在 React / Preact(又名。零件)

有时我需要创建一个包装元素,该元素将根据自己的逻辑显示其子元素(或不显示),可以选择将它们包装在自己选择的元素中:

这是有效的,因为孩子(“你好”)是静态的。但是,如果要动态计算子级并且仅在条件成立时才可以明确定义,该怎么办?

在这里,如果条件为假并且包装元素不使用其子元素,它们仍将被创建并向下传递,浪费资源并可能在过程中引发错误。

一种解决方案(可能是最好的?)是将内容包装在自己的组件中:

这是因为(AFAIK,如果我错了,请纠正我)InnerContent 的构造函数和渲染将不会被调用,除非 SomeWrapper 实际决定使用它的属性children

但是如果我不想为 3 行代码创建一个组件怎么办?

我在野外看到了两种选择,没有一种特别吸引人:

  1. 传递一个 thunk 作为唯一的孩子:

    /li>
  2. 传递一个 thunk 作为道具:

    /li>

我不喜欢它们,因为 lambda 给代码添加了视觉噪音,更不用说浪费资源了,在每次render()执行时都会重新创建(AFAIK。)

还有其他我没有看到的解决方案吗?我应该总是使用 InnerContent 元素吗?

0 投票
1 回答
309 浏览

assembly - x86-64 的条件跳转是如何工作的?

我在学习 x86-64 时对条件分支感到很困惑。

哪一个是正确的理解?

  1. 如果 %rax < %rdi,跳转到 L2
  2. 如果 %rax > %rdi,跳转到 L2
0 投票
3 回答
147 浏览

java - 为什么 Java 不优化 |= 分配?

t*()对于本例,总是返回 true,而 asf*()总是返回 false。

假设我们有以下表达式

如果是这种情况,JVM 会优化执行并仅执行f1()t1()因为它“理解”无论如何f2()t2()yield,输入 if 语句的要求得到满足,因此不需要进一步的计算。

我正在编写这样的代码:

我的一位同事看到了这一点并提到他不确定,但 Java 可能会优化语句 C 和 D,因为b总是true从语句B开始,这可能会导致一些问题。

我进行了一些测试,似乎所有测试都正确执行(这是所需的行为),但我仍然想知道为什么不进行优化?我认为他可能是对的,JVM 明白一旦b为真,任何|=操作都不会改变它的值。

0 投票
2 回答
1883 浏览

java - 根据条件链接可完成的期货

我有一堆返回 CompletableFuture 的方法,我想以特定方式链接

我正在尝试根据以下规则组合它们,

  1. 生成 1 到 100 之间的随机数
  2. 如果是偶数打印Even,如果是奇数打印Odd
  3. 如果该号码甚至findFactorial用随机数调用
  4. 如果数字是奇数,则通过查找最近的偶数convertToNearestEvenInteger

我不太清楚如何进行条件链接和异常处理。一些示例或代码片段可能会有所帮助。

0 投票
2 回答
1332 浏览

python - 用于 3.7 PEP 553 之前版本的 python 条件调试断点单线,其作用类似于 Perl 的 $DB::single=1

在 PEP 553breakpoint()实用程序之前的 python 版本中,添加(理想情况下是单行)代码以具有可以在条件下忽略的断点的推荐方法是什么(例如,全局调试标志或 args.debug 标志)。

在 Perl 中,我习惯使用$DB::single=1;1;单行,我知道我可以安全地将其留在代码中,并且不会影响正常运行,perl code.pl除非显式调用perl -d code.pl. 例如:

如果我将此代码运行为:perl code.pl,它将运行完成。如果我使用: 运行此代码perl -d code.plpdb则将在断点行处停止(而不是在带有my $b = 2;语句的下一行之前),因为它包含1;语句之后的$DB::single=1;语句;

同样,如果我写:

然后我可以执行perl -d code.pl,它将在第一个断点行停止,然后在pdb会话中,一旦我很高兴它不需要在其他任何地方停止,然后执行:$debug = 0,然后pdb继续c,这将使它不会在第二个或其他处停止代码中的类似断点行。

我怎样才能在python(PEP 553之前的2.x和3.x)中实现相同的目标,理想情况下是单行语句?

我知道 PEP 553,除了必须明确设置PYTHONBREAKPOINT=0 python3.7 code.py或注释掉这些breakpoint()行的麻烦之外,它是这里问题的解决方案。

我想到了以下选项:

下面的语句pdb.set_trace()是为了让我可以在 Perl1;之后的同一行中实现相同的$DB::single=1;效果,即让调试器停止我放置断点的位置,而不是下一条语句。这样如果中间有大块的注释代码或文档,调试器就不会跳转到离断点很远的下一条语句。

或使用以下条件:

因此,如果我完成了脚本的调试,我可以设置args.debug=Falsedebug=False不必触及代码中的所有这些断点。

0 投票
3 回答
51 浏览

linux - 管道中的失败命令未触发“catch”命令

我正在尝试设置一小段代码,以便如果其中任何一段失败,它将触发另一行代码运行。就像:

但是,第一段中有一个管道,所以:

但是,如果cmd1失败,cmd3则不会运行。

如果尝试了以下方法,每次都得到相同的结果:

为了完整起见,这是我正在使用的特定代码块:

到目前为止,它的运行就好像“catch”语句(如果你想这样称呼它)甚至不存在。此外,它的第一部分,特别是在管道之前,是如果它失败它不会抛出错误的部分。我对管道的第二部分没有任何问题,所以我不确定它是否会表现出相同的行为。

提前致谢!

0 投票
2 回答
87 浏览

bash - 如何在 bash 中有条件地添加管道元素

我需要形成各种命令的管道。管道的某些元素或元素序列仅在某些条件成立时才相关。现在,我可以写:

但这意味着重复cmd1and cmd4,另外,可能有几个条件,我不想写嵌套的 if 。所以,我试着写这个:

但是 - 管道符号没有被解释为使用管道的指令。

我如何让 bash 执行我想要的管道?

注意:您可以假设 bash 版本为 4 或更高版本,但前提是您必须这样做。

0 投票
1 回答
51 浏览

javascript - 使用javascript嵌套if语句错误的PDF自动填充

我有一个带有两个输入文本框的 pdf。1.) 项目代码和 2.) 项目

我正在尝试根据“项目代码”填充“项目”,但嵌套语句为我提供了所有情况下第一个 else if 条件的数据。例如,对于代码 5009113,我应该得到“20% 100 ML”,对于代码 5009111,我应该得到“25% 50ML”,依此类推。相反,对于项目代码中的任何和所有值,我都会得到“20% 100ML”。请在这件事上给予我帮助 :)