js中相等性问题
来源:互联网 发布:畅易阁抢号软件下载 编辑:程序博客网 时间:2024/06/06 03:04
javascript中变量比较问题
针对对象之间的比较,ECMAScript的解决方案是提供两组操作符:相等和不相等,全等和不全等.
相等不相等与全等不全等的区别是什么?相等不相等,先对数据进行转换后比较(先转换后比较);
全等不全等,仅比较不转换.
1.相等和不相等
相等操作符是==,不相等操作符是!=.两者都会先强制转换操作数,然后再比较转换结果的相等性.
转换不同的数据类型时,相等不相等遵循的(转换)原则是:
a.如果有一个操作数是布尔类型,在比较之前将其转化为数值,false转换为0,true转化为1.(eg1)
b.如果有一个操作符是字符串,另一个操作数是数值,在比较之前先将字符串转换为数字. (eg2)
c.如果有一个操作数是对象,另一个不是,则调用对象valueOf()方法,得到基本类型按照上面规则进行比较.(eg3)
转换过后的遵循的比较规则是:
a.null和undefined是相等的. (eg4)
b.在比较相等性之前,不能将null和undefined转化为其他任何值.(eg5)
转换规则:
1.ture == 1 ,false == 0, "1" == 1, true != 2, "acd" != 2;
比较规则:
2.undefined != 0, null == undefined, NaN != 任何, NaN != NaN
针对对象之间的比较,ECMAScript的解决方案是提供两组操作符:相等和不相等,全等和不全等.
相等不相等与全等不全等的区别是什么?相等不相等,先对数据进行转换后比较(先转换后比较);
全等不全等,仅比较不转换.
1.相等和不相等
相等操作符是==,不相等操作符是!=.两者都会先强制转换操作数,然后再比较转换结果的相等性.
转换不同的数据类型时,相等不相等遵循的(转换)原则是:
a.如果有一个操作数是布尔类型,在比较之前将其转化为数值,false转换为0,true转化为1.(eg1)
b.如果有一个操作符是字符串,另一个操作数是数值,在比较之前先将字符串转换为数字. (eg2)
c.如果有一个操作数是对象,另一个不是,则调用对象valueOf()方法,得到基本类型按照上面规则进行比较.(eg3)
转换过后的遵循的比较规则是:
a.null和undefined是相等的. (eg4)
b.在比较相等性之前,不能将null和undefined转化为其他任何值.(eg5)
c.如果有一个操作数是NaN,那么相等操作符返回false,而不相等操作符返回true.重要提示:即使两个操作数都是NaN,返回值是false,NaN != NaN(规定) (eg6)
d.如果两个操作数都是对象,则比较它们是不是同一个对象,是则返回true,不是则返回false. (eg7)转换规则:
1.ture == 1 ,false == 0, "1" == 1, true != 2, "acd" != 2;
比较规则:
2.undefined != 0, null == undefined, NaN != 任何, NaN != NaN
整理自javascript高级程序设计
0 0
- js中相等性问题
- js中判断2个字符串相等的问题
- js中判断字符串相等
- java中字符串相等问题
- Java中字符串比较相等问题
- js里面null,0,"",false,undefined是否相等问题
- 关于比较js中两个对象相等 ==
- JS中如何比较两个Json对象是否相等
- js中对象的比较:只有地址相同才相等
- Ruby中对象的相等性比较
- js 比较对象相等
- js 字符串相等判断
- js数组比较相等
- js 数组是不是相等
- .Net(C#)中,对象的相等比较问题
- .Net(C#)中,对象的相等比较问题
- jsp中使用EL判断枚举值相等问题
- 【知识】java中判断两个字符串是否相等的问题
- 研究pixhawk的makefile的结构(3)
- spring声明式事务处理(hibernate)
- mysqldump的使用
- linux下c语言控制输出字体和背景颜色
- java主函数
- js中相等性问题
- 美瞳对眼睛的伤害
- MATLAB使用技巧
- stl之string 常用函数 介绍
- 黑马程序员——Java语言基础:其他对象(System、Runtime、Date、Calendar、Math)
- onAttach 重写方法时super.不可少
- java对象序列化概述
- OpenCv使用记录
- Spark Streaming 图片处理案例介绍