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