为什么';我的简单if语句在javascript中是否呈现false?
我调用这样的函数:为什么';我的简单if语句在javascript中是否呈现false?,javascript,Javascript,我调用这样的函数: call_facebook(103138046395999, "samåkning.se", "http://www.facebook.com/samakning", "page"); call_facebook(16089699074, "Jag ska köra bil, vem vill åka med", "http://www.facebook.com/groups/16089699074/", "grupp") function call_facebook(id
call_facebook(103138046395999, "samåkning.se", "http://www.facebook.com/samakning", "page");
call_facebook(16089699074, "Jag ska köra bil, vem vill åka med", "http://www.facebook.com/groups/16089699074/", "grupp")
function call_facebook(id, name, link, type){
//snip
console.log(type)
if (type = "grupp"){
var postid=fbposts[fbpost].id.split("_");
return "https://www.facebook.com/groups/"+postid[0]+"/permalink/"+postid[1]+'/'
}
else {
return fbposts[fbpost].actions[0].link;
}
}
//snip
};
函数如下所示:
call_facebook(103138046395999, "samåkning.se", "http://www.facebook.com/samakning", "page");
call_facebook(16089699074, "Jag ska köra bil, vem vill åka med", "http://www.facebook.com/groups/16089699074/", "grupp")
function call_facebook(id, name, link, type){
//snip
console.log(type)
if (type = "grupp"){
var postid=fbposts[fbpost].id.split("_");
return "https://www.facebook.com/groups/"+postid[0]+"/permalink/"+postid[1]+'/'
}
else {
return fbposts[fbpost].actions[0].link;
}
}
//snip
};
我已经确认它们有不同的类型参数,但是第一种情况仍然是if(type=“grupp”)总是以true
结束。为什么?单个等于字符(=
)不进行比较。它分配!因此,您的if
语句总是将“grupp”
赋值到类型中,并返回true
使用=
或==
进行比较。我猜你的意思是
if (type == "grupp"){
您必须使用==
来比较值。只有一个=
用于赋值。==和===之间的区别是什么?==
检查参数是否相同type@KristofferNolgren=
将执行隐式类型转换,但==
不会;将==
视为“真正平等”,将==
视为“概念上平等”。有点像。@Kristofer:最好读一下这本书。