js 通过if判断条件,进行赋值。

2025-03-25 23:01:56
推荐回答(3个)
回答1:

params = [] 是不等于 params = {} 的。甚至 params = {} , b = {} 然后用if 判断params 和b是否相等也是不成立的,这点我也是很奇怪。

回答2:

var i=0;
for(var key in cond){
i++;

}
var j = 0;
for(var key in param){
j++;

}
if(i==0) params = param;
else if(i!=0&& j==0) params = cond;
else if(i!=0&& j!=0) params = {client:req.session.user.client,model:index};

回答3:

问题出在判断那里。
首先搞明白原理:
{} 是一个对象,对象是引用类型,引用类型做判断的时候是判断内存地址,而不是里面是有没有对象。
var a = {};
var b = {};
console.log( a == b); 输出一定为false,因为 a 和 b 都是 var 声明的对象 指向的是两个不同的内存地址。
var a = {}
var b = a;
console.log( a == b); 这次输出就为 true 了 ,因为 a 把它的 引用的内存地址赋值给了 b 。所以他们相等。
原理给你分析了。if 到底怎么走到哪个分支 你应该就能明白了吧。