JavaScript中相等操作符的类型转换
来源:互联网 发布:手机版极简付款软件 编辑:程序博客网 时间:2024/06/16 22:25
不同类型的值用==操作符比较后的结果
toNumber和toPrimitive方法是内部的
文字描述及补充:
一、首先看双等号前后有没有NaN,如果存在NaN,一律返回false。
二、再看双等号前后有没有布尔,有布尔就将布尔转换为数字。(false是0,true是1)
三、接着看双等号前后有没有字符串, 有三种情况:
1、对方是对象,对象使用toString()或者valueOf()进行转换;
2、对方是数字,字符串转数字;(前面已经举例)
3、对方是字符串,直接比较;
4、其他返回false
四、如果是数字,对方是对象,对象取valueOf()或者toString()进行比较, 其他一律返回false
五、null, undefined不会进行类型转换, 但它们俩相等
例题:
1.var a = [3];
if(a){
alert(a==ture);
};//返回false
因为:a是对象,a.valueOf()是3。 true是布尔值,转换为数字是1。3不等于1,所以为false
2.alert(null == undefined); //返回true
3.console.log(([])?true:false);
console.log(([]==false?true:false));
console.log(({}==false)?true:false)
得到的结果分别是什么?()// true true false
解析:引用类型转换成基本类型才能进行==运算;引用类型转换成布尔都是true;
第一个:[] 转成布尔,true。
第二个:
按照隐式转换规则:
[] == false
=> [].valueOf() == false
=> [].toString() == false
=> "" == false
=> true
第三个:
{} == false
=> {}.valueOf() == false
=> {}.toString() == false
=> "[object object]" == false
=> false
- JavaScript中相等操作符的类型转换
- JavaScript中相等和全等操作符的差异
- 2-javascript类型转换+操作符总结
- JavaScript进阶:js操作符类型转换
- javascript中类型之间的转换
- javascript中变量的类型转换
- javascript高级程序设计之相等操作符
- JavaScript中Array类型的基本操作
- javascript的类型转换
- javascript的类型转换
- JavaScript的类型转换
- js基础之关于Boolean及相等运算符的隐式类型转换
- javascript中自动类型转换
- 对C++中类型显示转换操作符const_cast<类型>(变量)的认识
- 类型转换操作符
- 类型转换操作符
- 类型转换操作符
- 类型转换操作符
- 119. Pascal's Triangle II
- 决策树 源码
- bzoj3277 串【解法一】
- 1、mardown 快速入门
- 【Java学习20170524】Spring
- JavaScript中相等操作符的类型转换
- postfix
- idea中使用log4j2打印日志
- Windows下配置Nginx+Tomcat配置集群负载均衡
- 机房重构为什么需要报表?
- 注意类类型的拷贝行为
- 【Selenium】idea环境配置
- 计算机科学家常用的32个算法
- 909422229_MongoDB第三节:账户创建与权限的设置