关闭

JS -- =、==和===

标签: javascript
117人阅读 评论(0) 收藏 举报
分类:

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 


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:72741次
    • 积分:1421
    • 等级:
    • 排名:千里之外
    • 原创:71篇
    • 转载:1篇
    • 译文:1篇
    • 评论:3条
    文章分类
    最新评论