左手赋值无效,检查变量并在IF语句中设置另一个变量

时间:2011-02-13 01:36:53

标签: javascript if-statement

if(a=="check" && b=some())

if 语句(理论上)如果a等于“check”并且some()返回非false / 0 / null的内容,则返回true /未定义。

但这会引发错误: ReferenceError:分配中的左侧无效。

在上下文中:

function some(){
  return (window.title=="Special")? 0 : window.title;
}
function check(a){
   var b;
   if(a == 1 && b = some()){
      alert("Window's title is: "+b);
   }
}

如果不使用使用两个if语句,我怎么能这样做?有可能吗?

1 个答案:

答案 0 :(得分:5)

将其与()分组。

if( a=="check" && ( b=some() ) )

http://jsfiddle.net/KsWBq/

这将评估赋值表达式,然后if()语句将使用该表达式的结果。