第一种 ===
function identity(val1, val2) {
return val1 === val2
}
第二种 es6新语法
Object.is() 方法判断两个值是否为同一个值,如果满足以下任意条件则两个值相等:
- 都是
undefined - 都是
null - 都是
true或都是false - 都是相同长度、相同字符、按相同顺序排列的字符串
- 都是相同对象(意味着都是同一个对象的值引用)
- 都是数字且都是 +0都是 -0都是 NaN都是同一个值,非零且都不是 NaN
Object.is() 与 == 不同。== 运算符在判断相等前对两边的变量(如果它们不是同一类型)进行强制转换(这种行为将 "" == false 判断为 true),而 Object.is 不会强制转换两边的值。
Object.is() 与 === 也不相同。差别是它们对待有符号的零和 NaN 不同,例如,=== 运算符(也包括 == 运算符)将数字 -0 和 +0 视为相等,而将 Number.NaN 与 NaN 视为不相等。
function identity(val1, val2) {
return Object.is(val1,val2)
}
判断了类型相同再判断值
不知道为什么三目运算符写出来的结果不能用
function identity(val1, val2) {
if(typeof val1 == typeof val2){
if(val1 == val2){
return true
}else{
return false
}
}else{
return false
}
}

京公网安备 11010502036488号