为什么';我的简单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:最好读一下这本书。