相等操作符(==)
1、比较的类型是String、Number、Boolean这几个基本类型时
当是这几中类型进行比较时,会先将两边转换成数字,在进行比较。
var result = (true==1);
alert(result); // true转换成数字为1,因此结果为true
result = ('123' == 123); //true
result = ('abc' == true); //'abc'转换成数字为NaN,结果为false,ECMAScript规定,NaN与任何值比较都是false,包括NaN==NaN
对于undefined和null,ECMAScript规定null==undefined结果为true;在比较等性之前,不能将null和undefined转换成其他值。
3、两个对象比较
若两个操作数指向同一个对象,则返回true,否则返回false。
关系操作符(<,>)
1、两边都是字符串
都是字符串时,按字符串对应的字符编码比较。
('abc'<'adc') //true
2、有一个操作数是数值
若有一个操作数是数值,则将另一个转换为数值进行比较。
('a' > 5); //‘a'转换为数值为NaN,结果为false
('2.3' > 1); // true
3、有一个操作数是布尔值
将此布尔值转换成数值,再进行比较,
('3' > true); //true
布尔操作符(!)
1、操作数是对象
任何对象都返回false。
var obj={};
var result=!obj;
alert(result); //false
2、操作数是字符串
空字符串返回true,非空返回false。
var a = 'OK';
var b = ' ';
var c = '';
var result=(!a); //false
var result=(!b); //false
var result=(!c); //true
3、操作数是数值
0返回true,非0(包括Infinity)返回false
4、操作数是null,undefined,NaN
返回true。