我的编程空间,编程开发者的网络收藏夹
学习永远不晚

面试题:怎么让“a==1&&a==2&&a==3”成立?

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

面试题:怎么让“a==1&&a==2&&a==3”成立?

问题是可以解决了。

评论区的有掘友说让 a = true 也可以解决的。确实很有误导性。其实是混淆了隐式转化的优先级。简单来说,隐式转化是由两部分组成:转化的规则 + 触发转化的条件if包着的里面整体触发了Boolean()的转化规则,==又字符串在右侧触发toString()的转化规则。

回到这题,==的右边是数字,JS运行线路是从左到右的。所以,这个时候触发的是Number()的规则,把左侧的true转化为1之后,两边类型一致之后,那自然不会再触发什么规则了,此时已经不构成隐式转化。所以说1 == 1 && 1 == 2 && 1 == 3是不成立的。

现在记住了,也比面试过程中的时候再来记好

现在将题目简单修改一下,将双等变成三个等怎么办?

大家都知道===的话是先判断类型,再判断值。这里的toString已经默认把对象转化为字符串了.使用toStirng的话,结果就不成立了.

2.2 defineProperties

使用对象的数据拦截法:

Object.defineProperties(window, {
  _a: {
    value: 0,
    writable: true
  },
  a: {
    get: function() {
      return  ++_a
    }
  }
})

涉及到对象的访问器相关内容

不知道是否让你想起Vue中的watch或者computed的指令呢?

三、总结

是否会做这道面试题没有任何意义。但是能够了解到这个面试题包含的知识点就很有意思。

从隐式类型转换到原型和原型链,最后到对象的访问权属性。如果要继续延伸的话,Vue的双向绑定的实现原理,class中static的实现等等。

这些就是为什么说,要构建前端的知识体系,能够从一个知识点延伸到相关的其他知识点。

【推荐学习:javascript高级教程】

以上就是面试题:怎么让“a==1&&a==2&&a==3”成立?的详细内容,更多请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

面试题:怎么让“a==1&&a==2&&a==3”成立?

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

面试题:怎么让“a==1&&a==2&&a==3”成立?

本篇文章给大家分享一个经典面试题,看看怎么让“a==1&&a==2&&a==3”成立?通过这个面试题,了解到包含的知识点,希望对大家有所帮助!
2023-05-14

javascript中如何让“a==1&&a==2&&a==3”成立

这篇文章主要讲解了“javascript中如何让“a==1&&a==2&&a==3”成立”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript中如何让“a==1&&a==2&&a
2023-07-05

JavaScript中怎么让x == 1 && x == 2 && x ==3等式成立

今天小编给大家分享一下JavaScript中怎么让x == 1 && x == 2 && x ==3等式成立的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收
2023-07-02

编程热搜

目录