== 与 === 在远程 JavaScript 文件中.哪一个更快
== vs. === in a remote JavaScript file. Which one is faster?
可能的重复项:
JavaScript === vs == : 我使用哪个"相等"运算符重要吗?
在 JavaScript 中比较相同类型的两个操作数的相等性时,使用 ==
或 ===
不会产生任何概念上的区别,所以我想知道当哪个运算符实际上更快时,就像我的情况一样,JavaScript 文件必须从远程 Internet 位置下载。
虽然严格相等运算符===
在许多用户代理上可能执行得更快,但它还需要 8 位未压缩的信息与 JavaScript 文件一起沿网络传输。
碰巧的是,今天的普通 CPU 在执行数百个条件跳转方面比互联网连接在提供一位时要快得多,所以我热衷于使用 ==
而不是===
和!=
而不是!==
。然而,我对阅读这么多建议做相反事情的博客感到困惑。
我错过了什么重要的点吗?
正如您所说,为了比较两个操作数保证属于同一类型,这两个运算符被指定为执行完全相同的步骤,并且除非编译器优化,否则它们的执行可能足够接近相同。因此,在这些情况下,使用==
比使用===
在文件大小方面略有优势。
然而,有些人认为一致性更重要:在测试相等性时,===
通常更接近你的意图,并且只使用===
和!==
是许多人认为有用和可读的。就个人而言,我有相反的规则,只有在操作数类型不确定时才使用===
,但我不建议使用任何一种方式。
和非严格相等之间的区别,并且确信使用 ==
和 !=
不会在您或其他任何处理您的代码的人将来阅读和理解代码时遇到任何问题,请继续使用它们。
据推测,推荐一个而不是另一个的博客这样做是出于与类似操作的逻辑一致性的原因,而不是为了速度。 试图修剪你的Javascript程序,从脚本中剃掉单个字符是不明智的;在服务之前通过 Minify 或其他自动化工具运行它是一回事,但是手动调整 Javascript 以获得最小文件大小或在单个操作数级别的执行速度是一项无休止的、吃力不讨好的任务,这将使您的网站更难维护。
使用任何对你来说更合乎逻辑的操作数,这样当你两年后不记得这条调查线时,你就不会感到困惑。
如果我可以引用 Douglas Crockford 的 Javascript: The Good Parts:
JavaScript 有两组相等运算符:=== 和 !==,以及它们的 邪恶的双胞胎==和!=。 好的按照你期望的方式工作。 如果两个操作数的类型相同且具有相同的值,则 === 产生真,!== 产生假。当操作数属于同一类型时,邪恶的双胞胎会做正确的事情,但如果他们是 不同类型的,他们试图胁迫价值观。 规则由 他们所做的是复杂且令人难忘的......缺乏 传递性令人震惊。 我的建议是永远不要使用邪恶的双胞胎。 相反,请始终使用 === 和 !==。
无论是否存在性能差异,都很难证明使用"邪恶双胞胎"是合理的。
var test="1";
console.log(test==1); // true
console.log(test===1); // false
==
检查测试是否为 1,但===
检查测试是否为 1,并检查其数据类型。在这种情况下,第二个表达式为 false,因为它的数据类型是字符串(test 是字符串),但右侧操作数不是字符串。以下测试有所不同
var test=1;
console.log(test==1); // true
console.log(test===1); // true
因为 test 包含 Integer
1,计算结果为 Boolean
true,右手操作数也相同。 ===
还会检查两个操作数是否都键入。
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- Sails.js:同时发布文本输入和一个文件
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- 要求定义另一个文件中的对象
- 是否可以使用JavaScript/AAJAX在客户端创建一个文件
- 如何将所有JS文件连接到一个文件夹中
- 请求准备一个文件并返回路径,允许用户在准备好时下载
- iPad虚拟键盘-哪一个-javasctript解决方案
- 从AngularJS中的另一个文件中的控制器访问服务
- 将任何CDN配置为只传递一个文件,无论请求的url是什么
- 通过AngularJS promise下载一个文件
- Grunt-将多个文件最小化/处理为一个文件
- 文件的节点自动化移动到另一个文件夹中
- 用于文件移动到另一个文件夹的Javascript自动化
- 需要从一个文件中获取多个模块
- 仅首先需要使用jasmine从节点添加一个文件
- 哪一个更好?存储在根文件或直接指向JS的链接上的JavaScript
- == 与 === 在远程 JavaScript 文件中.哪一个更快
- 在移动设备中,哪一个更快:包括一个额外的CSS文件或在JavaScript中创建一个样式元素