console.logとdocument.write


console.logとdocument.writeの違いは何ですか？  
以前まではブラウザに見えるか見えないかと思っていましたが  
ブラウザとコンソールで出力が異なるコードがありました

[code]

      var o   = {x :1, y:2, z:3};
      var a = [], i = 1;
      for(a[i++] in o);
      console.log(a); //出力[1:x, 2:y, 3:z]
      document.write(a)//出力,x,y,z
[/code]

なぜ異なるのでしょうか




[console.log()](https://developer.mozilla.org/ja/docs/Web/API/Console/log)は特に何か仕様があるわけではなく書式も定まっていません。デバッグに役立つような出力がなされているということです。  
[document.write()](http://www.w3.org/TR/html5/webappapis.html#dom-document-
write)は引数をそのままHTMLに追加します。`a`は文字列ではないので文字列化された後に追加されています。

