javascript 基础 相等操作符

确定两个变量是否相等在编程中极为重要,使用异常的多。

基础认识

ECMAScript提供两组操作符:

相等和不相等——先转换再比较

全等和不全等——仅比较而不转换

相等和不相等

在不同数据类型时,遵循以下基本原则。

  1. 如果有个一是布尔值,则先将其转换为数字——false转换为0,true转换为1
  2. 如果一个是字符串,另一个是数值,则将字符串转换为数字在比较
  3. 如果有一个操作数是对象,另一个不是则调用对象的valueOf()方法,用得到的原始值进行比较。
alert("1" == 1); // true 数字和字符串比较
alert(true == 1); // true 布尔类型和数字比较
alert(NaN == NaN); // false
alert(null == undefined); // true undefined是派生自null出来的
function Product(name,price){
        this.name = name;
    this.price = price;
}
Product.prototype.valueOf = function(){
    return this.price;    
}
Product.prototype.toString = function(){
    return this.name;    
}
var banana = new Product("banana",2.1);
var carrot = new Product("carrot",1.5);
alert(banana == 2.1); // true 调用了valueOf()方法,返回价格
alert(banana > carrot); // true 调用了valueOf()方法,返回价格比较

//

全等和不全等

除了在比较值钱不转换操作数之外,全等和不全等与相等和不相等没有什么区别

alert(ture === 1) // false 数据类型不同
alert("5" === 5) // false 数据类型不同

//接着上面创建的对象
alert(alert(banana === 2.1)) //false 不进行数据类型转化,不会调用对象的valueOf方法

 

 

posted @ 2012-06-18 15:45  zzu-han  阅读(201)  评论(0编辑  收藏  举报