javascript - 关于比较运算符==

查看:86
本文介绍了javascript - 关于比较运算符==的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

<script>

    var arr=[];
    alert(arr==false);//true
    var arr1=[1];
    alert(arr==false);//false
    alert(undefined==false);

</script>
哪位大神帮我解释一下,这里面进行了什么隐示转化,undefined和null在和其他类型进行比较时,会不会进行隐示转化


以上截图是怎样一个隐示转化,能不能解释一下

解决方案

1:undefined==null,且与其他类型比较时,都不会转化,即为false;
2:基本类型比较。向Number转。NaN不等于任何。
3:引用数据类型比较。比较指针地址。
4:2和3之间比较,引用数据类型会先调用valueOf()方法,再调用toString方法(已经是String则不调),然后调用Number()方法转为Number类型。需要注意的是Date类型会直接调用toString。


至于,你后面贴的图呢。
1:Number(true)是1.
oUl你可以试试oUl.valueOf().toString()一步一步看看是什么;
2:oUl!=undefined的结果其实还是由oUl==undefined的结果取反的出来的。也可以按照1的来自己试一试
////////////
另:其实有时候不是必须用==做判断,if(oUl)也能用,会把()内的隐式转换为布尔值。

这篇关于javascript - 关于比较运算符==的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆