fe-weekly-questions
fe-weekly-questions copied to clipboard
下面代码中的 a 在什么情况下会打印1?
var a = ? if(a == 1 && a == 2 && a == 3){ console.log(1) }
var a = {
value: 0,
valueOf(){
return ++this.value
}
}
if (a == 1 && a == 2 && a == 3) {
console.log(1);
}
抖个机灵,这样不管下面条件怎么换,都会打印1
var a = (()=>console.log(1))();
if(a == 1 && a == 2 && a == 3){
console.log(1)
}
var a = (()=>console.log(1))(); if(a == 1 && a == 2 && a == 3){ console.log(1) }
你有没有写错哦。你这个打印1,是因为第一行的立即执行函数呀,跟下面的if里面的没啥关系吧
var a = (()=>console.log(1))(); if(a == 1 && a == 2 && a == 3){ console.log(1) }
你有没有写错哦。你这个打印1,是因为第一行的立即执行函数呀,跟下面的if里面的没啥关系吧
emmmm既然不能抖机灵,那就改善一下
var a = { valueOf: () => this.a = (this.a || 0) % 3 + 1};
if(a == 1 && a == 2 && a == 3){
console.log(1)
}
这样不管几次if都会是1
这简直太秀了 ==对比调取valueOf()吗? 有相应的官方文档吗?我想去仔细了解一下