逻辑! (NOT)运算符JavaScript的差异

时间:2014-08-05 07:16:12

标签: javascript operators

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

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

  1. String1 !== String2
  2. !(String1 === String2)
  3. 在性能方面,上述两个推荐哪一个?

3 个答案:

答案 0 :(得分:1)

这是“微优化”的典型案例。简而言之:别担心。采取更具可读性的版本(我个人赞成1.超过2。)。

(只是稍微)更长的答案是:你不知道哪个更快 - 这取决于解释器的实现。*此外,你最好的几率是赢得每个这样的声明一个指令。不是很多。任何使用内存,从Web服务器加载文件或数据,或与DOM交互的代码都会比这更慢一大堆。这就是你的优化需要开始的地方 - 如果你的应用程序感觉太慢了。

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

答案 1 :(得分:1)

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

来源:http://www.bcherry.net/playground/comparisons

答案 2 :(得分:0)

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