我正在使用 JSLint 浏览 JavaScript,当比较 idSele unvehtype 时,它返回了许多建议,可以用 ===替换== 。 If 语句中的idSele_UNVEHtype.value.length == 0 。
更换是否有性能好处?
任何性能改进都将受到欢迎,因为存在许多比较运算符。
如果没有类型转换发生,是否会有性能提升?
在 JavaScript 比较中应该使用哪个等于运算符(=== vs==) ?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- weixin_38166163 2019-07-24 15:09关注
Identity (===))运算符的行为与 equality (==)运算符相同,只不过没有进行类型转换,而且类型必须相同才能被视为同等。
执行任何必要的类型转换后,==运算符将比较是否相等。==运算符将不进行转换,因此如果两个值不是同一类型==只返回false。两者都同样迅速。
对于引用类型 == 和===相互一致的行为(特殊情况除外)。var a = [1,2,3];var b = [1,2,3]; var c = { x: 1, y: 2 };var d = { x: 1, y: 2 }; var e = "text";var f = "te" + "xt"; a == b // false a === b // false c == d // false c === d // false e == f // true e === f // true
特殊情况是,由于 toString 或 valueOf 方法,将文字与计算结果相同的对象进行比较时。例如,考虑字符串文本与 String 构造函数创建的字符串对象的比较。
"abc" == new String("abc") // true"abc" === new String("abc") // false
这里,==运算符检查两个对象的值并返回true,但===发现它们不是同一类型并返回false。哪一个是正确的?这取决于你想比较什么。我的建议是完全绕过这个问题,不要使用String构造函数来创建字符串对象。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 如何在scanpy上做差异基因和通路富集?
- ¥20 关于#硬件工程#的问题,请各位专家解答!
- ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
- ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
- ¥30 截图中的mathematics程序转换成matlab
- ¥15 动力学代码报错,维度不匹配
- ¥15 Power query添加列问题
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 報錯:Person is not mapped,如何解決?
- ¥15 c++头文件不能识别CDialog