function identity(val1, val2) {
/*这题的意思应该是考===完全相等,
除此之外应注意到的是NaN和+0与-0,这个在===中的判断是错误的,
建议使用es6新增的能力Object.is(),与===不同之处只有两个:
一是 +0 不等于 -0 ,二是 NaN 等于自身。*/
if(val1===val2){
// +0不等于-0;但是用===的话会返回true;所以要做额外的判断;
// 1/+0是Infinity,1/-0是-Infinity
return val1 !== 0 || val2 !== 0 || 1/val1 === 1/val2;
}else {
//NaN等于NaN 但是NaN === NaN 等于false;所以做额外的判断
return val1 !== val1 && val2!== val2;
}
}