在 JavaScript 中 (a ==1 && a== 2 && a==3) 可能为 true 吗?

自定义 toString(或者 valueOf)方法,每次调用改变一次返回值,从而满足判断条件。

const a= { i : 1,

                 toString : function() {

                      returna.i++; 

              }

  }

if (a==1&&a==2&&a==3) {

    console.log('Hello World!');

}

当使用 == 时,如果两个参数的类型不一样,那么 JS 会尝试将其中一个的类型转换为和另一个相同。在这里左边对象,右边数字的情况下,会首先尝试调用 valueOf(如果可以调用的话)来将对象转换为数字,如果失败,再调用 toString。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容