澳门皇冠金沙网站-澳门皇冠844网站

热门关键词: 澳门皇冠金沙网站,澳门皇冠844网站

全等号运算符使用说明,JavaScript比较对象是否相

第贰个格外运算符在相比较的时候就把sNum的值"66"给调换来数字型,再和iNum比较所以会再次回到为true
而首个全等号相比较就从没有过进展类型转变,因而字符串和数字类型比较是不可能为实在,全体重临false
再有二个非全等号和非等于

填补一下变量相等常识

而以前一向都是用等号“==”一向都没在JS里用过全等于符号“===”。而這二种运算符只是检测七个对象的相等性时,二个实施类型转变和二个类型不更改,全等于符号独有在不改动类型前才回来true

种类不相同样,结果为false

复制代码 代码如下:

// 去重
Array.prototype.unique = function(){
    this.sort();
    var re=[this[0]];
    for(var i = 1; i < this.length; i ){
        if( this[i] !== re[re.length-1]){
            re.push(this[i]);
        }
    }
    return re;
}
 
var o2o = function(o1,o2){
 
    if(typeof o1 != typeof o2){
        return false;   
    }
 
    if(typeof o1.length != typeof o2.length ){
        return false;   
    }
 
    var bool = true;
 
    var keyArr1 = [];
澳门皇冠金沙网站,    var keyArr2 = [];
         
    for(var i in o1){
        keyArr1.push(i);
    }
 
    for(var i in o2){
        keyArr2.push(i);
    }
 
    if(keyArr1.length != keyArr2.length){
        return false;
    }
 
    for(var i=0, k=keyArr2.length;i<k;i ){
        keyArr1.push(keyArr2[i]);   
    }
 
    var keyArr = keyArr1.unique();
 
    for(var i=0,k=keyArr.length;i<k;i ){
        if( ( keyArr[i] in o1 ) && ( keyArr[i] in o2 ) ){
            if( typeof o1[keyArr[i]] == 'object' && typeof o2[keyArr[i]] == 'object' ){
                bool = o2o( o1[keyArr[i]], o2[keyArr[i]] );
            }else if( o1[keyArr[i]] !== o2[keyArr[i]] ){
                return false;
            }
        }else{
            return false;
        }
    }
 
    return bool;
};

复制代码 代码如下:

var o1 = {
    age : "18",
    info : {
        'author' : 'lee',
        'job' : [
            'a','b'
        ]
    },
    'name' : 'laowu'
};
 
 
var o2 = {
    'name' : 'laowu',
    'age' : 18,
    info : {
        'author' : 'lee',
        'job' : [
            'a',        
            'b'
        ]
    }
};
 
console.log(o2o(o1,o2)); // false

var sNum="66";
var iNum=66;
alert(sNum==iNum);//输出为 true
alert(sNum===iNum);//输出为 false

把o1的age换到字符串的18

var sNum="66";
var iNum=66;
alert(sNum!=iNum);//返回为false
alert(sNum!===iNum);//返回为true

var o1 = {
    age : 18,
    info : {
        'author' : 'lee',
        'job' : [
            'a','b'
        ]
    },
    'name' : 'laowu'
};
 
 
var o2 = {
    'name' : 'laowu',
    'age' : 18,
    info : {
        'author' : 'lee',
        'job' : [
            'a',        
            'b'
        ]
    }
};
 
console.log(o2o(o1,o2)); // true

率先个运算符大家都好了解,运算符把sNum调换为数字类型,而转为数字类型后這七个值是分外的之所以重回为false
第一个运算符非全等号未有把sNum类型转变所以sNum是不等于iNum的,所以回来为true
這相当于自身四个就学笔记呵呵。

在JavaScript中比非常多少个目的的积极分子是或不是等于有一点劳碌,要是只是首先层相比,很轻易,但子对象里的品质恐怕又是三个目的,所以不得不递归

本文由澳门皇冠金沙网站发布于前端开发,转载请注明出处:全等号运算符使用说明,JavaScript比较对象是否相