- 偶然看到女朋友的代码:
if(a=b){return a}
- 很奇怪判断竟然能写比较符之外的东西,在此记录一下。。。
let a = "";
let b = "";
if (a = b) {
console.log("here 1");
} else {
console.log("not here 1"); // not here 1
}
a = 1;
if (a = b) {
console.log("here 2");
} else {
console.log("not here 2"); // not here 1
}
b = 1;
if (a = b) {
console.log("here 3"); // here 3
} else {
console.log("not here 3");
}
b = 0;
if (a = b) {
console.log("here 4");
} else {
console.log("not here 4"); // not here 4
}
b = false;
if (a = b) {
console.log("here 5");
} else {
console.log("not here 5"); // not here 5
}
// 可以看到: 当 a 被赋值 ""/0/false时并不会走到if里面
- 她写这个判断的需求是: 当 变量
b
不为空的时候才返回
总结
-
if
判断里面是可以写赋值语句的
- 判断过程是先赋值,之后根据
a
的值来判断是否走到if
里面