请问如何让(a == 1 && a==2 && a ==3)为 true?

194 阅读1分钟

请问如何让(a == 1 && a==2 && a ==3)为 true?

前置知识

逻辑运算符||&&

  • 逻辑或||
    • ||前面为false,就返回||后面的值
    • ||前面为true,就返回||前面的值
  • 逻辑与&&
    • &&前面是false,就返回&&前面的值
    • &&前面是true,就返返回&&后面的值

巧用运算符:

  • ||设置默认值 let name = person.name || '掘金'
  • &&判断依赖键是否存在防止报错xxx of undefined
    • let name = person.name && person.name.firstName

解决方案

  • 数据劫持:Object.defineProperty(Vue2.x双向数据绑定原理)
    let value = 0
    Object.defineProperty(window,'a',{
        get(){
            return value += 1;
        }
    })
    a === 1 && a === 2 && a === 3 // true
    
  • 修改属性
     let i= 0
     let a = {
         // 三个修改一个就可以
         valueOf() {
             return ++i;
         },
         toString() {
             return ++i;
         },
         [Symbol.toPrimitive]() {
             return ++i;
         }
    }
    a === 1 && a === 2 && a === 3 // true