我有两个应用下面代码的小提琴,唯一的区别是一个使用console.log而另一个使用alert来显示变量myString的值。一个小提琴警告字符串'foo',而另一个小提醒foo像foo {0="f", 1="o", 2="o"}
这个差异的原因是什么?
var myString = new String('foo'); // produces a String() object
alert(myString);
答案 0 :(得分:4)
console.log
输出变量的实际内容,在本例中是一个具有属性的对象。
alert
首先将所有内容转换为原始字符串。
答案 1 :(得分:0)
来自控制台对象的firebug documentation:
如果记录了对象,它们将不是作为静态文本写入,而是作为 可以单击以检查对象的交互式超链接 Firebug的HTML,CSS,脚本或DOM选项卡。您也可以使用%o 用于替换字符串中超链接的模式。
答案 2 :(得分:0)
alert()使用对象的toString()方法将传递给它的对象转换为字符串。与alert()不同,console.log()不仅限于显示简单字符串,还允许您与传递给它的对象进行交互,例如让您检查其属性。