博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript中===与==
阅读量:6184 次
发布时间:2019-06-21

本文共 1087 字,大约阅读时间需要 3 分钟。

== equality 等同,=== identity 恒等。

==, 两边值类型不同的时候,要先进行类型转换,再比较。
===,不做类型转换,类型不同的一定不等。

类型转换规则:

Boolean>number:false>0,true>1;
number+string/object>number;
string+object>string; (toString)

特殊的比较:

null 和 undefined 是相等的。
null 和 undefined 不会转换为任何其他类型.
如果任何一个操作的结果为 NaN,那么相等比较返回 false,不相等比较返回 true。
注意,即使两个操作数都为 NaN,返回结果一样是 false,也就是说,NaN 不等于 NaN。
如果两个操作数都是对象,那么比较它们引用的值,如果引用同一个对象,那么,返回真,否则,返回假。

null,undefined的区别:和数字运算时,10 + null结果为:10; 10 + undefined结果为:NaN;

注意:false,0,"",null,undefined在if语句中做判断,都会执行false分支,而"0","\t"则是执行true分支。

!逻辑非,也会按上面的规则取值后,再取反

1 alert(true == 2); //false 2  3 var a = {};alert(a == "[object Object]");//true 4  5 alert("0" == false); //true 6 alert(!"0" == false ); //true 7  8 alert(Number("\t") ); //0 9 alert(parseInt("\t") ); //NaN10 alert("\t" == false); //true,说明"\t"通过Number()函数转换成数值11 12 alert(!"\t" == false); //true13 14 alert("" == 0);//true15 alert("0" == 0); //true16 alert("0" != "");//true17 alert("\t" != "0");//true18 19 alert(null == undefined);//true20 alert((10 + null)==(10 + undefined));//false

 

转载于:https://www.cnblogs.com/guodefu909/p/3262828.html

你可能感兴趣的文章
<转>进程与线程的一个简单解释
查看>>
typescript 学习教程 (1)
查看>>
Hadoop 解除 "Name node is in safe mode"
查看>>
正则表达式
查看>>
字符串处理的练习~
查看>>
一名网工对Linux运维的一次经历
查看>>
jdbc中如何使用classloader
查看>>
在Struts2中方便获得Spring中的Bean方法
查看>>
「ThinkPHP开发者周刊」第2期
查看>>
思达报表工具Style Report基础教程—交叉表
查看>>
H3C笔试题目
查看>>
成为一名优秀的Web前端开发者
查看>>
mybatis 学习笔记
查看>>
Spring Boot AOP
查看>>
Mysql导出sql语句的方法及可能遇到的mysqldump: command not found
查看>>
网站建设PHP mysql 事务处理实例
查看>>
家人重病什么心情都没了
查看>>
贪心算法
查看>>
MetaQ FAQ
查看>>
IOS touch事件~~
查看>>