1

我有两个应用下面代码的小提琴,唯一的区别是一个使用 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/

4

3 回答 3

4

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

alert另一方面,首先将所有内容转换为原始字符串。

于 2012-10-12T20:46:59.140 回答
0

从控制台对象的萤火虫文档

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

于 2012-10-12T20:43:54.717 回答
0

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

于 2012-10-12T20:45:38.133 回答