首页 > 试题广场 >

完全等同

[编程题]完全等同
  • 热度指数:52181 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
判断 val1 和 val2 是否完全等同
推荐
编辑于 2015-12-09 09:48:13 回复(5)
function identity(val1, val2) {
    return val1 === val2
}
===值和类型都完全相同
发表于 2021-03-31 22:10:08 回复(0)
function identity(val1, val2) {
    return Object.is(val1, val2)
}


发表于 2021-02-10 10:20:48 回复(0)
return typeof(val1) == typeof(val2) && val1 == val2;

发表于 2020-08-07 15:36:41 回复(0)
function identity(val1, val2) {
    return val1 === val2;
}

发表于 2019-08-09 22:24:44 回复(0)
function identity(val1, val2) {
    if(val1 === val2) {
        return true;
    }else {
        return false;
    }
}

发表于 2018-06-30 13:29:48 回复(0)
function identity(val1, val2) {
    return val1===val2;
}
发表于 2017-11-21 16:02:05 回复(0)
function identity(val1, val2) {
    return val1===val2?true:false;
}
其实我觉得这题的意思应该是考===完全相等,除此之外应注意到的是NaN  和+0与-0,这个在===中的判断是错误的,建议使用es6新增的能力Object.is(),与===不同之处只有两个:一是 +0 不等于 -0 ,二是 NaN 等于自身。
发表于 2017-08-27 11:56:39 回复(5)
function identity(val1, val2) {
    if(val1===val2){
        // +0不等于-0;但是用===的话会返回true;所以要做额外的判断
        return val1 !== 0 || val2 !== 0 || 1/val1 === 1/val2;
    }else {
        //NaN等于NaN 但是上面的判断 NaN === NaN 会返回false;所以做额外的判断
        return val1 !== val1 && val2!== val2;
    }
}

编辑于 2019-03-29 11:18:31 回复(8)
//判断 val1 和 val2 是否完全等同
//"==="表示恒等,即,只有数据类型和数值都相同的情况下,才会返回true
//而"==",则是相同数据类型间的值比较
function identity(val1, val2) {
	return val1===val2;
}
console.log(identity(2,'2'));

发表于 2017-02-13 22:20:03 回复(3)