文章目录

  • 使用浏览器window对象的alert()方法
  • 打开浏览器控制台设置断点
  • debugger 代码
  • 利用Chrome控制台输出
    • console.log()
    • console.table()
    • console.time() 和console.timeEnd() 测试执行的时间
    • console.trace() 查看函数调用堆栈
    • 自定义输出样式
  • 压缩后js文件的测试

使用浏览器window对象的alert()方法

最原始也是最为简单的前端调试方式,使用浏览器的window对象的alert()方法,弹出对话框显示需要调试的变量的值。

        var s = "Chrome调试";window.alert(s); //调用window的alert()方法alert(s);//省略window对象,直接调用方法

调试的效果如下:

使用alert()方法调试,如果通过调用多次alert()方法调式有多个变量,则需要手动关闭前面的窗口,后面的才能显示,对于多变量、复杂调试效率较低。

打开浏览器控制台设置断点

现在大多数浏览器都默认提供了开发工具,可以在浏览器中直接调试JS的代码。Chrome的开发工具应该是属于最好用的开发工具之一了。调出Chrome的开发工具的方法有以下几种:

  • 在浏览器窗口中,右键单击,选择检查

  • 使用快捷键: Ctrl+Shift+I

  • F12 (有些电脑不支持)

debugger 代码

在JavaScript代码中加上debugger语句,在开发工具窗口开启的状况下, 代码执行到这句就会停下。

debugger;

效果如下:

这非常适合代码量较多的复杂项目中,快速定位需要调试的代码段。但需要注意, 如果是正式发布的时候, 需要将这些调试的代码移除。

利用Chrome控制台输出

console是Chrome等浏览器提供的控制台对象,调用该对象的 console.log()方法可以在开发工具控制台中输出。类似后端的控制台输出和日志,该对象提供了不同级别的调试输出,包括:

  • console.info()
  • console.debug()
  • console.warn()
  • console.error()

console.log()

在html中加入以下代码:

        console.log("通用信息");console.info("Info 级别信息");console.debug("Debug 调试级别信息");console.warn("Warn 警告级别信息");   console.error("Error错误级别信息");

在Chrome中打开开发工具,进入Console标签页,输出效果如下图:

  • 左边区块会统计各种类型输出
  • 右边显示各种级别的具体信息以及在代码文件中的位置
  • 右上角会显示错误信息和警告信息的数目

console.table()

JSONArray的数据通过console.table()可以以表格显示在控制台中,比如以下代码:

        var generals = [{"id": 101,"kingdomId": 1,"name": "刘备"}, {"id": 102,"kingdomId": 1,"name": "关羽"}];console.table(generals);

在控制台显示如下:

console.time() 和console.timeEnd() 测试执行的时间

console.time() 和console.timeEnd()成对出现用来测量代码段执行的时间。测试示例如下:

        console.time('My Timer');var items = [];for(var i = 0; i < 1000000; i++){items.push({index: i});}console.timeEnd('My Timer');

console.trace() 查看函数调用堆栈

console.trace() 用来查看函数的调用堆栈。 示例代码和效果如下:

        function func1(){func2();}function func2(){func3();}function func3(){console.log("this is func3 call by func2, func2 call by func1");console.trace("func3 trace");}func1();

自定义输出样式

如果对控制台的信息输出有更高的要求,也可以自定义输出的样式,比如:

console.log('%c %s','color: red; background-color: black','My Message'); //黑底红字
  • %c, 对应样式
  • %s, 输出的消息

压缩后js文件的测试

出于性能的考虑,某些网站或是框架的JS文件会进行编译压缩。压缩后的文件没有了换行,基本无法调试,比如Ext JS框架的文件 ext-all.js 。在浏览器的控制台中点击源码按钮 {}可以重新格式化这个文件,比如:

点击后的效果如下:


基于格式化后的文件就可以正常的进行断点调试了。

基于Chrome浏览器的前端调试相关推荐

  1. electron 打开调试_构建基于 iOS 模拟器的前端调试方案

    作者:imyzf 本文将为大家介绍自动化控制 iOS 模拟器的原理,为开发基于 iOS 模拟器的前端调试方案提供帮助. 我们在开发 iOS App 内的前端页面时,有一个很大的痛点,页面无法使用 Sa ...

  2. 手机chrome浏览器真机调试PC端本地的项目

    1.本次实验环境 操作系统: win10 10.0.19042 chrome浏览器PC端: 97.0.4692.99(正式版本) (64 位) 手机操作系统:Android 10; MIX 2S Bu ...

  3. chrome浏览器安装vue调试插件dev-tools

    1. 在google商店中下载vue dev-tools 2. 修改manifest.json中的persisetent配置 3. 在chrome浏览器扩展程序中勾选 "允许访问文件网址&q ...

  4. 用python写一个自动注册脚本_js自己写脚本自动操作注册插件基于chrome浏览器

    大家好!又到了一周的福利时间,今天给大家一个福利,以后抢票不需要手动刷新页面了,直接用你自己写的插件来控制,事先声明,本人是js菜鸟,所以今天带来的例子都是低级的例子 我自己写了一个ajax添加的程序 ...

  5. 关于如何清除某个特定网站的缓存---基于Chrome浏览器

    1.清除浏览器缓存 直接在浏览器设置里面清除浏览器的缓存会清除所有网站的缓存信息,这在某些时候是非常不方便的,毕竟不只有测试网站,还会有一些我们不想清除的信息也会被清除掉: 2.通过F12功能去清除浏 ...

  6. 清除某个特定网站的缓存---基于Chrome浏览器

    1.清除浏览器缓存 直接在浏览器设置里面清除浏览器的缓存会清除所有网站的缓存信息(具体方法可参考:https://blog.csdn.net/weixin_41287260/article/detai ...

  7. Chrome浏览器开启手机调试模式就断网解决

    目录 报错显示 解决方法 总结 提示:以下是本篇文章正文内容,下面案例可供参考 报错显示 不打开F12 手机调试模式就可以正常使用 只要一打开手机调试模式就报错断网 解决方法 原因是我们设置了offl ...

  8. 基于Chrome浏览器插件实现SAE自动登录

    不知道各位大神在用sae开发项目是不是有这样的困扰,sae是没有记住密码功能的,每次系统都需要调用新浪登录的api来进行登录,ae这样做可能是出于安全考虑吧,其实对于我自己的pc机开发来讲,有个自动登 ...

  9. cefsharp(基于chrome浏览器的web控件)

    下载地址 https://cef-builds.spotifycdn.com/index.html cef自带libcef.lib文件,以及需要编译生成的libcef_dll_wrapper.lib文 ...

最新文章

  1. 专访施巍松:边缘计算早期提出者之一
  2. 大厂面试必问的 4 大开源框架,你真会吗?
  3. 【Flutter】Flutter 拍照示例 ( Android 应用兼容 Android X | Gradle 版本号 | Gradle 插件版本号 | Android X 支持 | SDK 版本 )
  4. re-for-50-plz-50 寒假逆向生涯(6/100)
  5. GC之G1垃圾收集器
  6. c语言一个一个读取文件字节,C语言中二进制文件的读取
  7. 地大武汉的计算机网络工程师,2021年中国地质大学(武汉)电子信息(085400)计算机网络与信息安全技术及应用_考研专业目录_考试科目_考试范围 - 学途吧...
  8. ora00936缺失表达式怎么解决_初学者学习AE经常会遇到问题及解决方法,快进来看看吧!~~...
  9. 快排的c++实现(两种实现方式)
  10. linux yum 目录在哪,急问怎么知道yum从哪个地址下载的文件呢?
  11. .net 根据模板创建html文件
  12. 简述线性反馈移位寄存器
  13. vscode格式化代码快捷键
  14. canvas实现动态矩形碰撞
  15. pytthon问题 pytcharm Automatic upload failed: could not resolve file “sftp://10.xx.xx.xx 【已解决】
  16. 宝妈新手小白,在家用手机做语录短视频,一周赚了2000多
  17. 拼多多店铺如何快速装修?
  18. 全媒体运营师胡耀文教你:拆解电商运营万能公式
  19. 如何屏蔽UC强制嵌入到你网站页面上的垃圾广告
  20. ps基础学习:更改证件照的背景色

热门文章

  1. springMVC分析-1
  2. 第二章 在HTML页面里使用javaScript
  3. BZOJ 1013 球形空间产生器
  4. 遍历聚合对象中的元素——迭代器模式(四)
  5. VS2010 Resource view为空的解决办法
  6. 摘抄一篇:图的存储结构
  7. VS2008 在IE8中 调试 ActiveX控件 无法进入断点的解决方法 设置VS2008和IE8 调试ATL MFC ActiveX控件
  8. mui框架 页面无法滚动解决方法
  9. 微矿Qlib:业内首个AI量化投资开源平台
  10. leetcode力扣617. 合并二叉树