面试题:使 (a === 1 && a === 2 && a === 3) 为true
一看题目就知道
a
不可能是个固定的值,且在一个判断为true就要变成下一个判断的值。由此推断,此处需要使用到数据劫持!
Object.defineProperty
1 | let num = 1; |
Proxy
发现用proxy也能做这样的事,但是得把a
放到对象里(对Proxy理解不是很透彻,不知道还有没有其他写法);
1 | let obj= new Proxy({a:0},{ |
对象在做比较时的隐式转换
不过这种方法不能使用
===
只能是用==
判断才能为true;
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 上野!
评论