JavaScript:'foo'或foo {0 =“f”,1 =“o”,2 =“o”}`

时间:2012-10-12 20:39:27

标签: javascript

我有两个应用下面代码的小提琴,唯一的区别是一个使用console.log而另一个使用alert来显示变量myString的值。一个小提琴警告字符串'foo',而另一个小提醒foo像foo {0="f", 1="o", 2="o"}这个差异的原因是什么?

    var myString = new String('foo'); // produces a String() object

   alert(myString);​

http://jsfiddle.net/mjmitche/UdYXZ/

http://jsfiddle.net/javascriptenlightenment/XcfC5/

3 个答案:

答案 0 :(得分:4)

console.log输出变量的实际内容,在本例中是一个具有属性的对象。

另一方面,

alert首先将所有内容转换为原始字符串。

答案 1 :(得分:0)

来自控制台对象的firebug documentation

  

如果记录了对象,它们将不是作为静态文本写入,而是作为   可以单击以检查对象的交互式超链接   Firebug的HTML,CSS,脚本或DOM选项卡。您也可以使用%o   用于替换字符串中超链接的模式。

答案 2 :(得分:0)

alert()使用对象的toString()方法将传递给它的对象转换为字符串。与alert()不同,console.log()不仅限于显示简单字符串,还允许您与传递给它的对象进行交互,例如让您检查其属性。