某面试题 a==1&&a==2&&a==3 的解决方案以及涉及知识

function test(a){
    a == 1 && a== 2 && a == 3 && console.log('all true')
}

此题涉及到引用类型 关羽这知识点建议百度或者看《你不知道的JavaScript》

第一种解题思路是用Object.definedprotype这里不多介绍

第二种涉及到valueOf()

let a = {
    i = 1,
    valueOf: () => { a.i++ }
}

test(a) // 'all true'

查阅某资料有说到== 底层会执行到valueOf()。所以在valueOf()里面自增++

==是比引用类型,===先判断类型再转成字符串对比

posted @ 2021-04-24 21:25  WongDaWEEE  阅读(76)  评论(0编辑  收藏  举报