您的位置:首页 > Web前端 > JavaScript

Javascript--等性运算符

2009-12-24 13:09 246 查看
判断两个变量是否相等是程序设计中非常重要的运算,若是对原始值进行运算,则比较简单,但涉及到对象,则有点复杂.

ECMAScript提供了两套运算符处理这个问题:

等号和非等号处理原始值 全等号和非全等号处理对象
1.等号和非等号

等号由==表示.当且仅当两个运算数相等时,才返回true.

非等号由!=表示.当且仅当两个运算数不相等时,它返回false.

为了确定运算数是否相等,这两个运算符都会进行类型转换.类型转换基本规则如下:

如果一个运算数是Boolean值,在检查相等性之前,会把它转换成数字值.true转换为1,false转换为0. 如果一个运算数是数字,另一个运算数是字符串,则尝试将字符串转换为数字. 如果一个运算数是数字,另一个运算数是对象,则尝试将对象转换为数字. 如果一个运算数是字符串,另一个运算数是对象,则尝试将对象转换为字符串. 不能将null和undefined转换成其他类型值.
运算符在进行比较时,遵循以下规则:

值null与undefined相等 如果某个运算数是NaN,等号返回false,非等号返回true.即使两个运算数都是NaN,等号仍返回false 如果两个运算数都是对象,则比较的是它们的引用值.
对一些特殊值进行比较,前提代码:

function display(value){
document.write(value+"<br/>");
}

var obj1 = new Object();
var obj2 = new Object();
var obj3 = obj1;


结果:

比较式结果
1=="1"true
1==falsefalse
1==truetrue
2==truefalse
null==undefinedtrue
1==NaNfalse
NaN==NaNfalse
NaN!=NaNtrue
obj1==obj2false
obj1==obj3true

2.全等号和非全等号


全等号由===表示.只有在无需类型转换运算数的情况下,才返回true.

非全等号由!==表示.



例子,前提代码:

function display(value){
document.write(value+"<br/>");
}

var obj1 = new Object();
var obj2 = new Object();
var obj3 = obj1;


结果:

比较式结果
1==="1"false
1===falsefalse
1===truefalse
2===truefalse
null===undefinedfalse
1===NaNfalse
NaN===NaNfalse
NaN!==NaNtrue
obj1===obj2false
obj1===obj3true
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: