Javascript中的相等比较
2024-09-06 02:45:28
在比较相等或不相等之前,会对操作数进行类型转换,然后比较相等性
在转换不同的数据类型时,相等和不相等操作符遵循下列基本规则:
1.如果由一个操作数是布尔值,则在比较相等性之前先将其转换为数值;
2.如果一个操作数是字符串,另一个操作数是数值,在比较相等性之前先将字符串转换为数值;
3.如果一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,用得到的基本类型值按照前面的规则进行比较;
这两个操作符在进行比较时则要遵循下列规则:
1.null和undefined是相等的。
2.要比较相等性之前,不能将null和undefined转换成其他任何值。
3.NaN不与任何值相等
4.如果两个操作数都是对象,则比较他们是不是同一个对象。如果两个操作数都是指向同一个对象,则相等放回true,否则返回false。
console.log(null == undefined); //true
console.log(null == null); //true
console.log(undefined == undefined); //true
console.log(null == 0); //false,相等运算符
console.log(null >= 0); //true,关系运算符
关系运算符,在设计上总是尝试将运算元进行类型转换,而相等运算符在设计上,则没有这方面的考虑
最新文章
- 关于IoCallDriver使用的疑惑
- 错误 1 error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- hdu 1249 三角形
- day4----json的简单实用
- 【CocoaPods】配置CocoaPods前 - 本地安装好Ruby环境
- poj 2065 SETI 高斯消元
- 给大家介绍款在线压缩JS的工具
- VC图形绘制双缓存的代码复用性讨论
- jstl-初步认知
- MySQL 单个表锁死 对查询语句无响应
- <;Consistency>;<;of HBase>;<;CAP>;<;ACID>;
- 【状压DP】【HDOJ1074】
- 【AMQ】之JMS概念
- cv2.SIFT() AttributeError: &#39;module&#39; object has no attribute &#39;SIFT&#39; OpenCV Python can&#39;t use SURF, SIFT
- android开发学习——day6
- 百度2015校园招聘面试题回忆录(成功拿到offer)
- ios开发之--搜索框的使用(PYSearchViewController的使用)
- 安装ORACLE_RAC遇到的问题与解决方法
- MySql5.5安装(windows)
- 转载-java基础学习汇总