下面代码中 a 在什么情况下会打印 1?
var a = ?;
if(a == 1 && a == 2 && a == 3){
console.log(1);
}

这个题目考察==的隐式转换

  • 利用toString
let a = {
i: 1,
toString () {
return a.i++
}
} if(a == 1 && a == 2 && a == 3) {
console.log('1');
}
  • 利用valueOf
let a = {
i: 1,
valueOf () {
return a.i++
}
} if(a == 1 && a == 2 && a == 3) {
console.log('1');
}
  • 数组这个就有点妖了(数组的toString通常调用join)
var a = [1,2,3];
a.join = a.shift;
if(a == 1 && a == 2 && a == 3) {
console.log('1');
}
  • ES6的symbol
let a = {[Symbol.toPrimitive]: ((i) => () => ++i) (0)};
if(a == 1 && a == 2 && a == 3) {
console.log('1');
}

最新文章

  1. Pyhton 利用threading远程下发文件和远程执行linux系统命令
  2. mysql数据库日期,ip等处理
  3. HDU 3966 Aragorn's Story 树链剖分+树状数组 或 树链剖分+线段树
  4. ionic 集锦
  5. 基于WebDriver&TestNG 实现自己的Annotation @TakeScreenshotOnFailure
  6. eclipse的maven项目报Missing artifact jdk.toos:jdk.toos:jar:1.6错
  7. 【BZOJ-4514】数字配对 最大费用最大流 + 质因数分解 + 二分图 + 贪心 + 线性筛
  8. Web前端开发规范文档(google规范)
  9. 【C#】委托
  10. MAVEN “Plugin execution not covered by lifecycle configuration”
  11. jQuery插件- Autocomplete应用详解
  12. 打造属于自己的Altium Designer 3D封装库,不需要懂专门的三维设计软件
  13. Java中数组的初始化方式
  14. How to install IIS 7.5 on Windows 7 using the Command Line
  15. 剑指offer编程题Java实现——替换空格
  16. ZooKeeper 状态机
  17. JAVA中写时复制(Copy-On-Write)Map实现
  18. spring源码分析之spring-jdbc模块详解
  19. @Valid注解的使用(转)
  20. php 守护进程(Daemon)

热门文章

  1. [源码解析] Flink的groupBy和reduce究竟做了什么
  2. 第一次前端实习机试题 很粗糙的一个天气预报demo
  3. Nice Jquery Validator 方法
  4. 第一个SpringMVC程序 (配置版)
  5. grafana repeat 特性
  6. [转] linux操作系统下c语言编程入门--基础知识
  7. 关于JSON数据体积优化的一点小心得
  8. (十)自动化测试pom完整文件
  9. Redis的常用配置
  10. ODBC 常见数据源配置整理