2012-01-17 5 views
0

を省略:Firebugの:私は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; 

それはちょうどんそう、何が起こっているの?

答えて

3

Firebugのログは、の最後の結果を返します。は、それぞれの式ではありません(デバッグ機能として)。当然のconsole.log()意志を渡すものは上げ、そしてあなたが

console.log(typeof (S)); 

を行う。しかし、それは常に、最後の式と終了の戻り値にスローではなく、前のものならば、あなたはこれを参照してくださいよ。

したがってシーケンス:

S; 
typeof (S); 

が戻りtypeof (S);の値と他には何とシーケンスが得られます:

typeof (S); 
S; 

は、戻り値が得られる場合(単なるSです)S。結果はコード内のどこにも格納されていないので、式を実行して、以外のを最後の式の末尾に入れます。ここでFirebugに結果が表示されます。これは、jQuery式などの実行を容易にするためです。

+0

しかし、最後の2つのケースですべての結果が表示されます。 – tarashish

+0

私はそれをより明確にするために答えを編集しました。ログに出力したい場合は、常に 'console.log()'を使うべきです(IEはそれをサポートしておらず、例外をスローします)。 – zrvan

関連する問題