5后's Blog

大道至简

JS -- =、==和===

1、“=”为赋值运算符


2、“==”为等于,两边值类型不同的时候,要先进行类型转换,再进行比较。

①如果两个值类型相同,进行 === 比较。 
②如果两个值类型不同,则可能相等。根据下面规则进行类型转换再比较: 
a、如果一个是null、一个是undefined,那么相等。 
b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。 
c、如果任一值是 true,将其转换成1再比较;如果任一值是 false,将其转换成0再比较。 
d、如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,是利用toString或者valueOf方法。 JS核心内置类会尝试valueOf先于toString。但是对于Date,是利用toString转换。 
e、任何其他组合,都不相等。 


3、“===”为严格的等于,不做类型转换,类型不同的一定不等。

①如果类型不同,就不相等。
②如果两个都是数值,并且是同一个值,那么相等;但是,如果其中至少一个是NaN,那么不相等。判断一个值是否是NaN,只能用isNaN()来判断。
③如果两个都是字符串,每个位置的字符都一样,那么相等;否则,不相等。
④如果两个值都是true,或者都是false,那么相等。
⑤如果两个值都引用同一个对象或函数,那么相等;否则不相等。
⑥如果两个值都是null,或者都是undefined,那么相等。


例如:

var a = 2; 
var b = "2"; 

alert(a==b); //true 
alert(a===b); //false 


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wudj810818/article/details/51544486
文章标签: javascript
个人分类: JS
想对作者说点什么? 我来说一句

javascript手册

2010年05月18日 525KB 下载

JS流程图JS流程图

2017年12月21日 909KB 下载

JavaScript实用技巧

2009年04月02日 58KB 下载

梅花雨日历下载(共3种)

2009年12月05日 29KB 下载

js大全 javascrip 下载吧

2011年07月18日 70KB 下载

js 验证js 验证js 验证

2009年12月08日 16KB 下载

js树形控件js树形控件

2008年12月12日 90KB 下载

javascript合并单元格

2010年11月26日 1KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭