javascript中console.dir与console.log的区别及应用实例

366 阅读2分钟

在JavaScript中,前端开发者使用控制台来调试应用程序

控制台是JavaScript中的一个对象,用于在浏览器中调试应用程序时记录变量、字符串和数据结构
我已经发布了关于JavaScript中的控制台对象

Console.log与console.dir的比较

Console.logconsole.dir
用于调试目的,向控制台打印任何数值以导航树的格式向控制台提供有用的数据
给予显示数据的格式化能力打印对象和它的属性
显示文档的XML树元素显示JSON格式
它使用内部串联的对象并进行打印它使用迭代来打印一个数据的属性

打印字符串的简单例子

控制台日志和dir打印不仅是字符串,而且可以传递对象、映射和设置,可以使用+或逗号(,)附加。

  
  
<html lang="en">  
 <head>  
  <meta charset="UTF-8">  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">  
  <script>  
 console.log('this is string')  
    console.dir('this is string')  
  </script>  
 </head>  
 <body>  
   <p>Console log and dir example</p>  
 </body>  
</html>  


在上面的例子中,字符串被传递,两个语句的行为是一样的。

this is string  
this is string  

数组打印,使用log和dir函数

数组被传递给console.log,在方括号中打印出数组元素。

Dir打印可点击的对象,当点击时,显示其值。

这种行为在chrome和Firefox浏览器中是不一样的。

下面是一个例子。

let array=[1,2,3,4];  
console.log(array)  
console.dir(array)  

Chrome  
(4) [8, 2, 4, 9]  
Array(4)  
Firefox   
Array(4) [ 1, 2, 3, 4 ]  
Array(4) [ 1, 2, 3, 4 ]  

打印带有键和值数据的对象

可以使用log和dir函数打印对象,结果和下面的例子一样。

let myobject = {id: "1", name: "TOM"};  
console.log(myobject)  
console.dir(myobject)  


Object { id: "1", name: "TOM" }  
Object { id: "1", name: "TOM" }  

DOM元素 HTML,JSON格式

对于DOM元素,
console.log打印DOM元素的HTML树
console.log显示DOM元素的JSON树结构。

console.log(document.head)  
console.dir(document.head)  

<head>  
  <meta charset="UTF-8">  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">  
  <script>  
 console.log(document.head)  
    console.dir(document.head)  
  </script>  
 </head> 
head  
​  
accessKey: ""accessKeyLabel: ""assignedSlot: null  
​  
attributes: NamedNodeMap []  
​  
baseURI: "file:///C:/Users/Kiran/Desktop/test%20(2).html"childElementCount: 3childNodes: NodeList(7) [ #text, meta, #text  
, … ]  
​  
children: HTMLCollection { 0: meta, 1: meta  
, length: 3, … }  
​  
classList: DOMTokenList []  
​  
className: ""clientHeight: 0clientLeft: 0clientTop: 0clientWidth: 0contentEditable: "inherit"contextMenu: null 

地图和设置对象打印到控制台

对于地图数据类型,
console.log打印它的键和值,用逗号与等号分开,并以{}括起来。
Console.dir打印不同格式的条目和其大小属性。

var mymap = new Map([[11 , 12], [21 ,31 ] ,[41, 51]]);   
console.log(mymap)  
console.dir(mymap)  

Map(3) {11 => 12, 21 => 31, 41 => 51}  
Map(3)[[Entries]]0: {11 => 12}1: {21 => 31}2: {41 => 51}size: (...)__proto__: Map  

对于集合数据类型,

dir打印包括条目和其大小属性的其他格式。

let myset = new Set()  
myset.add(6)             
myset.add(1)             
myset.add(7)            
console.log(myset)  
console.dir(myset)  


Set(3) {6, 1, 7}  
Set(3)[[Entries]]0: 61: 12: 7size: (...)__proto__: Set  

如果你喜欢这篇文章,请分享或喜欢它,并在下面的评论部分留下你的反馈意见