日期:2014-05-16  浏览次数:20387 次

javascript中的==和===
1.用==作比较运算时,比较的两个值都会进行类型转换.转换规则如下:(比较的两个值分别为A和B):
a.A、B中有bool值,则比较之前会转化为数字值。false转为0, true转为1 ;
alert(false==0)//结果为true

b.A、B一个是字符串,一个是数字,比较前会将字符串转为数字。
alert("123"==123)//结果为true

c.A、B一个是对象,一个是数字,则检查相等性之前要尝试把对象转化成数字。
alert(5==new String("5"))//结果为true

d.A、B都为对象,则比较的是引用值,如果两个引用指向同一对象,结果才为true
alert(new String("5") == new String("5"));//注意结果为false

其他规则:
alert(null == undefined);//true
alert(NaN == NaN);//false
alert(NaN == 1);//false
,只要比较的两者中含NaN,结果即为false

2.用===也叫全等号,只有在无需类型转换运算数才相等的情况下才返回true.保证比较的两个值必须是同一类型(或同一个引用),而且值也相等。
alert("5" === "5")//true
alert("5" === 5);//false


在比较javascript字符串时,可以采用以下的两种方法,不用“==”直接比较

1. String的indexOf()方法:
var str1 = "abc";
var str2 = "abc";
alert(str1.indexOf(str2)==0&&str2.indexOf(str1)==0)//相等则为true,不等则为false注意此种方法区分大小写

2.String的localCompare()方法
str1.localeCompare(str2)==0//返回0则证明str1与str2相等