合乎逻辑!(非)JavaScript中的运算符差异

合乎逻辑!(非)JavaScript中的运算符差异,javascript,operators,Javascript,Operators,我试图比较两个字符串,并根据结果执行一些表达式 下面是我编写的两个示例表达式,用于比较两个不匹配的字符串 String1!==String2 !(String1==String2) 在性能方面,从以上两个方面推荐哪一个?我相信它的String1!==String2。因为只有一个逻辑比较而不是两个。这是“微观优化”的典型案例。简言之:别担心。以可读性更强的版本为例(我个人倾向于1 答案(只是稍微长一点)是:你不知道哪一条更快——这取决于解释器的实现。*此外,你最好的机会是在每一条这样的语句中赢得一

我试图比较两个字符串,并根据结果执行一些表达式

下面是我编写的两个示例表达式,用于比较两个不匹配的字符串

  • String1!==String2
  • !(String1==String2)

  • 在性能方面,从以上两个方面推荐哪一个?

    我相信它的
    String1!==String2
    。因为只有一个逻辑比较而不是两个。

    这是“微观优化”的典型案例。简言之:别担心。以可读性更强的版本为例(我个人倾向于1

    答案(只是稍微长一点)是:你不知道哪一条更快——这取决于解释器的实现。*此外,你最好的机会是在每一条这样的语句中赢得一条指令。不是很多。任何使用内存、从web服务器加载文件或数据或与DOM交互的代码都会比这慢很多。如果您的应用程序感觉太慢,那么这就是您需要开始优化的地方


    *)基本上,
    ==设计为一个操作,而
    !(a==b)
    本质上是两种操作:一种是比较,然后是否定。但是,根据解释器(甚至编译器)的不同,这样的表达式可能会得到优化。

    这取决于您希望有效代码块如何工作的上下文。这两者之间没有这样的区别,因为两者都是严格的。但是,如果使用==或!=然后它会慢10%左右


    来源:

    性能,真的吗?在IRL中,单个ajax请求的延迟将主导数百万次比较的执行时间。所以选择一个读起来更好的。这是微观优化的荒谬。首先,编写最能表达您正试图做的事情的代码,这是最容易理解的。两者之间的差异如此之小,以至于无关紧要。性能方面的差异并不重要,但第一个似乎更重要logical@SergioTulentsev,我想知道哪一个表现更好,两者有什么区别?没有区别,它们将执行相同的操作。是的,我不必担心,但我希望将来在比较字符串时使用一个作为标准。我从页面(与DOM相关)的动态变量中选取一个字符串,并在页面加载期间将其与预定义的文本字符串进行比较。@codeMad Use
    ==。这就是你的标准。@codeMad:这就是为什么我写了“采用可读性更强的版本”,对我来说这就是
    ==