我正在使用 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 基于卷积神经网络的声纹识别
- ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
- ¥100 为什么这个恒流源电路不能恒流?
- ¥15 有偿求跨组件数据流路径图
- ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
- ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
- ¥15 CSAPPattacklab
- ¥15 一直显示正在等待HID—ISP
- ¥15 Python turtle 画图
- ¥15 stm32开发clion时遇到的编译问题