为什么我的简单if语句在javascript中呈现为false?

时间:2012-06-24 15:17:47

标签: 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, 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。为什么呢?

2 个答案:

答案 0 :(得分:6)

单个等号字符(=)无法比较。它指定!因此,您的if语句始终会将"grupp"分配到type并返回true

使用=====进行比较。

答案 1 :(得分:1)

我想你的意思是

if (type == "grupp"){

您必须使用==来比较值。只需一个=来分配值。