JavaScript console.dir和console.log之间的差异
控制台对象:控制台对象提供对浏览器的调试控制台的访问,可以通过F12或ctrl+shift+j查看。控制台对象包含许多方法,其中log()和dir()是最常用的。
console.log()方法将对象的toString表示打印到控制台上。
语法:
console.log(object) or console.log("string", object)
console.dir() 方法在控制台中向用户输出指定对象的对象属性列表。
语法:
console.dir(object)
简单来说,console.log()返回对象的字符串表示形式,而console.dir()将对象视为对象并输出其属性。 log()和dir()都返回字符串作为字符串。
示例:
<!DOCTYPE html>
<html>
<head>
<script>
var str = "Howdy GeeksforGeeks"
var geek = {
book: "harrypotter",
price: "2000"
};
var geek2 = [10, 20, 30];
console.log(str);
console.dir(str);
console.dir(geek);
console.log("geek (log) = ", geek);
console.dir(geek2);
console.log("geek2 (log) = ", geek2);
// Prints only string as dir() takes
// only one parameter.
console.dir("geek2 (dir) = ", geek2);
</script>
</head>
</html>
输出:
在上面的代码中, log()
打印对象的 toString 表示, 而 dir()
识别对象并仅打印其属性。
以上程序在chrome中运行,所以 log() 打印出树状结构和字符串信息,但如果在firefox中运行, log() 仅打印 toString 表示信息,而 dir() 在任何地方行为都相同。
从代码中可以看出, console.dir(“geek2 (dir) = “, geek2); 仅打印字符串部分,而不打印对象属性,因为dir() 只接受一个参数,并将字符串视为其传递给方法的唯一参数,而log() 可以接受任意数量的参数。