JS笔试题收集

# JS笔试题收集

# 收藏

# 记录

  1. 题目如下,补全?的内容,使页面打印1
let a = ?
if (a == 1 && a == 2 && a == 3) {
    console.log(1);
}

解:

// 解法1
let a = {
    value: 1,
    toString: function() {
        return a.value ++
    }
}

// 解法2
let a = {
  i: 1,
  valueOf() {
    return a.i ++
  }
}

// 解法3
let value = 1;
Object.defineProperty(window, 'a', {
    get() {
        return value ++;
    }
})


// 解法4
var a = new Proxy({i: 1}, {
    get(target) {
        return () => target.i ++;
    }
})

if (a == 1 && a == 2 && a == 3) {
    console.log(1);
}

扩展:什么样的 a 可以满足 (a === 1 && a === 2 && a === 3) === true 呢?

let current = 0
Object.defineProperty(window, 'a', {
  get () {
    current++
    return current
  }
})
console.log(a === 1 && a === 2 && a === 3) // true

参考 (opens new window)

上次更新: 6/5/2022, 11:33:36 PM
最近更新
01
taro开发实操笔记
09-29
02
前端跨端技术调研报告
07-28
03
Flutter学习笔记
07-15
更多文章>