js中===和==的区别
2016-05-20 15:00
603 查看
最近看到一个问题,js中===和==的区别
==会将俩边的变量转化为同一个类型,然后再比较值,如果相等则true,否则false
===会先比较俩边变量的类型,如果不是同一类型则返回false,如果是同一类型则继续比较值
2、Array、Object等复杂类型之间的比较
对于高级类型,==和===都会比较地址的异同
3、复杂类型和基础类型之间的比较
== 的情况下,复杂类型会向基础类型转化
===还是会先比较类型的异同
</pre><p>1、Number类型、String类型等基础类型</p><p>看下面一段代码</p><p></p><pre code_snippet_id="1690526" snippet_file_name="blog_20160520_2_9553485" name="code" class="javascript"><script type="text/javascript"> var a = "1"; var b = 1; alert(a==b);//true,转化同一类型后,比较值, alert(a===b);//false,首先比较类型的异同,其次比较值 </script>
==会将俩边的变量转化为同一个类型,然后再比较值,如果相等则true,否则false
===会先比较俩边变量的类型,如果不是同一类型则返回false,如果是同一类型则继续比较值
2、Array、Object等复杂类型之间的比较
<pre name="code" class="javascript"><script type="text/javascript"> var arr1 = new Array("1"); var arr2 = new Array("2"); var arr3 = arr1; alert(arr1 == arr2); //false;对于高级类型来说,会比较地址,并且==和===都是相同的效果。 alert(arr1 === arr2); //false alert(arr1 == arr3); //相同的地址,因此返回true </script>
对于高级类型,==和===都会比较地址的异同
3、复杂类型和基础类型之间的比较
<script type="text/javascript"> var arr1 = [1]; var arr2 = [1,2]; var num = 1; var str = "1"; alert(arr1 === num); //false alert(arr1 == num); //true alert(arr1 == str); //true alert(arr2 == num); //false alert(arr2 == str); //false </script>
== 的情况下,复杂类型会向基础类型转化
===还是会先比较类型的异同
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享