Javascript中的'=='等同运算符
木子(blog.csdn.net/luckybeggar)
MSN:luckybeggar@21cn.com
-------------------------------------
既然选择了远方,便只顾风雨兼程!
1 比较数字,字符串和布尔值时使用的都是量值,当且仅当这两个变量存放的值相等时返回true;
2 比较对象,数组和函数时使用的则是引用,只有两个变量引用的是同一个对象时才返回true;
比较两个值的等同性必须遵循的规则
* 如果两个值具有相同的类型,就比较这两个值看是否相等
- 如果两个值都是字符串,而且在串中同一位置上的字符相同,他们就相等
- 如果两个值都是数字,那么他们相等,但是如果一个时NaN,或两个都是NaN他们不等
- 如果两个都是布尔值true或都是false,则相等
- 如果两个值引用的是同一对象,数组,或函数,那么他们相等,如果引用的是不同的对象,即使是可转
化成相同的原始值也不等
- 如果两个值都是null,另一个是未定义的,他们相等
* 如果两个值的类型不同,应把他们转换成相同的类型以使用上述的规则比较
- 如果一个值是数字,而另一个是字符串,那么字符串被转换成数字比较
- 如果有一个值为true,那么他被转换成1,然后比较,false被转换成0
- 如果一个值是对象,而另一个值是数字或字符串,那么将对象转换成一个原始类型的值,然后比较,
javascript先尝试valueOf()转换,再尝试toString()转换。