Неверное левостороннее назначение, проверка переменной и установка другой в выражении IF - PullRequest
2 голосов
/ 13 февраля 2011
if(a=="check" && b=some())

Оператор if (в теории) вернет true, если a равно "check" и если some() возвращает что-то, что не ложно / 0 / null / undefined.

Но это выдает ошибку: 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 Ответ

5 голосов
/ 13 февраля 2011

Сгруппируйте его с ().

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

http://jsfiddle.net/KsWBq/

Это позволит оценить выражение присваивания, а затем результат этого выражения будет использоваться оператором if().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...