Javascript 使用字符串的IF条件

Javascript 使用字符串的IF条件,javascript,polymer,polymer-1.0,Javascript,Polymer,Polymer 1.0,我正在用Polymer 1.0编程,试图创建一个IF函数来更改属性的值。我的职能如下: _searchButton: function(selectednamedropdown, selectedtypedropdown){ if (selectednamedropdown=="no_name_selected" && selectedtypedropdown=="no_type_selected"){ this.searchUsagesBtn = true }

我正在用Polymer 1.0编程,试图创建一个IF函数来更改属性的值。我的职能如下:

_searchButton: function(selectednamedropdown, selectedtypedropdown){
  if (selectednamedropdown=="no_name_selected" && selectedtypedropdown=="no_type_selected"){
    this.searchUsagesBtn = true
  } else{
    this.searchUsagesBtn = false
  }
}
在我看来,当selectednamedropdown等于no_name_selected且selectedtypedropdown等于no_type_selected时,函数应将searchUsagesBtn设置为true,当它们不是这些值时,设置为false


但是,即使满足这些条件,函数似乎也不会返回true。你知道为什么会这样吗?当我像这样运行您的函数时,感谢所有帮助

    let searchUsagesBtn;
function search(selectednamedropdown, selectedtypedropdown) {
  if (
    selectednamedropdown === "no_name_selected" &&
    selectedtypedropdown === "no_type_selected"
  ) {
    searchUsagesBtn = true;
  } else {
    searchUsagesBtn = false;
  }
}

search("no_name_selected", "no_type_selected");
console.log("button: ", searchUsagesBtn);

我在控制台日志中得到按钮:true。所以这个函数中的输入可能不是字符串

问题在于JavaScript如何处理函数中的属性。函数存储的是第一个属性的新值和旧值,而不是第二个属性的任何值。解决方案包括制作两个函数来测试每个属性中的字符串。感谢所有帮助

您是否尝试在函数中设置断点,以查看selectednamedropdown和selectedtypedropdown是否真的是您所认为的那样?我有-当我使用polymer时,我可以看到数据绑定并显示它们,以确认它们实际上是字符串,它们也应该放在控制台中。登录工作我想你在这个范围上有问题,从一个普通的JS角度思考。很明显,这个条件没有得到满足,因为if语句中的块会运行。我会在函数的开头放一个console.log来找出这两个变量的值。或者像Matt说的那样设置断点输入是我模板中的属性-它们实际上位于一个名为纸质列表框的组件上,我在html标记中将它们定义为selectednamedropdown=no_type_selected,所以我相信它们存储为stringsIt听起来有点奇怪。。与JavaScript本身无关。。也许您的意思是,您的方法是第一个属性上的简单观察者,而不是两个属性上的复杂观察者。。