Firebug: пропускает вывод в некоторых случаях - PullRequest
0 голосов
/ 17 января 2012

Когда я запускаю этот бит кода в Firebug:

 var s ="test";
 var S=new String(s);
 S.len=4;
 var t = S.len;
 console.log(t);
 typeof(S);
 S;

Он полностью пропускает вывод для typeof(S); Но если я делаю:

  var s ="test";
  var S=new String(s);
  S.len=4;
  var t = S.len;
  console.log(t);
  console.log(typeof(S));
  S;

Это правильно,что происходит?

1 Ответ

3 голосов
/ 17 января 2012

Журнал Firebug дает вам результат выражения last (в качестве функции отладки), а не каждое выражение.Все, что проходит console.log(), конечно же, появится, и вы увидите это, если вы сделаете

console.log(typeof (S));

Но оно всегда возвращает возвращаемое значение последнего выражения и конца, но не предшествующегоединицы.

Таким образом, последовательность:

S;
typeof (S);

даст возвращаемое значение typeof (S); и ничего больше, а последовательность:

typeof (S);
S;

выдаст возвратзначение, если S (это просто S).Поскольку результаты не сохраняются где-либо в вашем коде, он просто запускает выражение и уничтожает результат, за исключением в последнем выражении любой из вышеперечисленных последовательностей, где Firebug показываетВы, каков был результат.Это облегчает, скажем, запуск выражения jQuery и т. П.

...