Javascript 为什么条件句使用&&;速度快了两倍
我今天搜索了很多东西,但是在我找到一些我在这里不知道的东西之后…所以我决定看看哪一个是最快的,这就是我所拥有的Javascript 为什么条件句使用&&;速度快了两倍,javascript,performance,Javascript,Performance,我今天搜索了很多东西,但是在我找到一些我在这里不知道的东西之后…所以我决定看看哪一个是最快的,这就是我所拥有的 &&比如果和条件a:b快两倍 是的。或者只是我的浏览器 你觉得这个怎么样,你觉得表演值得吗。我的意思是,如果你的应用程序开始运行快2倍。是否值得将编码样式更改为怪异的&s..您的代码片段做的事情不一样。JavaScript的逻辑和短路,因此(x='default')部分永远不会实际执行。您的代码的解释如下: (x == undefined) || (null && (
&&
比如果和条件a:b快两倍代码>
是的。或者只是我的浏览器
你觉得这个怎么样,你觉得表演值得吗。我的意思是,如果你的应用程序开始运行快2倍。是否值得将编码样式更改为怪异的&s..您的代码片段做的事情不一样。JavaScript的逻辑和短路,因此(x='default')
部分永远不会实际执行。您的代码的解释如下:
(x == undefined) || (null && (x = 'default'))
由于x==undefined
为true
,因此永远不会执行OR的第二部分,因为无论第二部分的布尔值如何,整个表达式都将为true
如果添加括号,则第一个和第三个代码段(至少对我而言):
这是因为&&,在第一个表达式bool(未定义)=false和false&&anything)=false的短路行为,如果if
条件变为&
,你的应用程序将无法以2倍的速度开始工作。这一行代码可能会更快,但它可能不会是2倍,而且总体上的差异会很小。你应该进一步澄清这个问题,因为我在点击链接之前没有意识到,Chrome和Firefox之间的顺序是相反的,所以我不会费心修改任何代码。感谢你捕捉到(x==undefined | | null)&&(x='default')代码>我认为这就是实际发生的情况。若x等于undefined或null,则返回true,这将导致执行右侧,即x='de..,以便您可以看到它是有效的。试试看。@MuhammadUmer:你的第一个例子没有做到这一点。执行它并查看x
@MuhammadUmer的值:另外,x==undefined | | null
不检查x
是否为undefined
或null
。它首先检查x==undefined
。如果这是true
,它将返回true
。如果它是false
,将执行|null
,您将返回null
。对于我正在做的事情,它很可能是未定义的,但可能是null。但是,是的,我也觉得这意味着我正在检查这两种情况。但我实际上并不打算这么做。@MuhammadUmer:您需要使用x==undefined | | x==null
来检查这两种情况。然而,当类型转换跳入时,undefined==null
;因此,比较x==undefined
或x==null
将检测null
和undefined
。
(x == undefined || null) && (x = 'default')