当前位置: 首页 > news >正文

JavaScripts console.log和console.dir区别

console.log 和 console.dir 都是 JavaScript 中用于在浏览器控制台打印信息的方法 ,二者主要有以下区别:

输出内容和格式

  • console.log:主要用于输出简单的日志信息,直接打印数据的字符串表示 。对于对象、数组等引用类型,在现代浏览器中通常会展开显示对象的属性,但本质是显示其字符串化后的内容 。比如:
const person = { name: 'Alice', age: 30 };
console.log(person); 
// 输出类似 {name: "Alice", age: 30} ,是对象的字符串表示形式

它也支持多参数输出,会将多个参数连接起来显示 ,像 console.log('姓名:', person.name, ',年龄:', person.age); 。

  • console.dir:专门用于展示对象的结构,以树形结构的形式输出对象的所有属性和方法 ,方便深入查看对象内部细节 。例如:
const person = { name: 'Alice', age: 30 };
console.dir(person); 
// 会以更像文件目录树的交互列表形式展示对象的属性和方法,可展开查看详细内容

不过它仅处理第一个参数,如果传入多个参数,只会显示第一个参数对象的结构 。

对 DOM 元素的显示

  • console.log:显示 DOM 元素的 HTML 结构 。比如 console.log(document.body); ,会展示 <body> 标签及其内部包含的 HTML 内容 。
  • console.dir:显示 DOM 对象的属性 。例如 console.dir(document.body); ,会列出 document.body 这个 DOM 对象所具有的各种属性,如 clientHeightclientWidth 等 。

交互性

  • console.log:输出的信息交互性有限,主要是展示信息,一般不能对输出内容进行进一步交互操作 。
  • console.dir:输出的对象属性列表具有可展开性,能像操作文件目录树一样展开或收起属性,更便于查看和分析对象详细信息 。

标准性和兼容性

  • console.log:是标准的控制台输出方法,被所有现代浏览器支持 。
  • console.dir:属于非标准特性,虽然在大多数现代浏览器中可用,但从规范角度不建议在生产环境中大量使用,不过在调试场景下使用较方便 。

一般来说,如果只是快速查看变量值、简单输出信息,使用 console.log ;若要深入分析对象结构,特别是调试 DOM 对象属性时,console.dir 更合适 。

http://www.xdnf.cn/news/655633.html

相关文章:

  • Linux基本指令篇 —— clear指令
  • Vue 前端全方位性能优化指南
  • 【Hive基础】01.数据模型、存储格式、排序方式
  • FFmpeg 时间戳回绕处理:保障流媒体时间连续性的核心机制
  • 双11、618大促要做什么?
  • vs2022 调试时 控制台界面不出来
  • 基于离散元仿真软件DEMms的双锥水力旋流器-颗粒分离性能分析
  • 白平衡校正中冯・克里兹参数计算过程详解
  • 通过Jflash合并Boot和App两个hex为一个hex的办法
  • C++11——智能指针
  • Django压缩包形式下载文件
  • Halcon 图像预处理②
  • (11)Service Mesh架构下Java应用实现零信任安全模型
  • 运维_麒麟_国产系统桌面版安装
  • 编程日志5.21
  • ScrollView 嵌套 RecyclerView 滑动处理方案
  • OceanBase数据库从原理到实战(安全与权限篇)
  • 蚂蚁集团 CTO 何征宇:AGI时代,海量数据带来的质变|OceanBase 开发者大会实录
  • OpenLayers 加载ArcGIS瓦片数据
  • 打造现代 Web 服务的终极选择:轻量级 Rust HTTP 框架
  • 《数据结构与算法分析》读书笔记:第一章 引 论
  • Docker基础 -- 构建 RK3588 Debian 根文件系统
  • 中建海龙携MiC技术亮相双博会 引领模块化建筑新潮流
  • 集成30+办公功能的实用工具
  • 【文章速读】Tim Ferriss《每周工作4小时》
  • C++异步日志系统
  • Keepalived及相关项目
  • 文档工具解析:前端如何选择最适合的文档生成器?
  • PHPStorm运行Thinkphp8.0项目
  • xhr、fetch和axios