首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

八、通过断点调试观察JS执行过程

因此,断点调试对于快速定位代码错误,以及快速了解代码的执行过程有着非常重要的作用,这也是我们前端开发必不可少的一个高级技能。...这篇文章的另一个目的在于借助对于断点调试的学习,进一步加深对闭包的理解。 一、基础概念回顾 函数在被调用执行时,会创建一个当前函数的执行上下文。...在我的demo中,我把代码放在app.js,并在index.html中引入。我们暂时只需要关注截图中红色箭头的地方。在最右侧上方,有一排图标。我们可以通过使用他们来控制函数的执行顺序。...•设置断点后刷新页面,JavaScript代码会执行到断点位置处暂停执行,然后我们就可以使用上边介绍过的几个操作开始调试了。...这是来自《你不知道的js》中的一个例子。由于在使用断点调试过程中,发现chrome浏览器理解的闭包与该例子中所理解的闭包不太一致,因此专门挑出来,供大家参考。我个人更加倾向于chrome中的理解。

4.4K11
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    移动端网页调试

    尽管移动端网页与桌面端网页有诸多差异,但是说到底它还是一个在浏览器里浏览的HTML网页,所以最常用的还是在桌面借助Chrome调试器。...Chrome自带的Developer Tool对于调试移动端网页来说非常方便,可以通过调整下表所示的几个属性来调整页面。...优点:可以完全在真机设备上调试网页,无论是HTML和CSS,还是脚本和请求,都和在桌面浏览器一样,最重要的是当前调试的是在真实环境下的页面。...当看到优点是不是很激动,在真机上可以调试iOS和Android设备的网页耶✌️ 使用vConsole调试 由腾讯出品的vConsole调试工具,在调试移动端的时候非常有效,而且其使用方法也是简单。... // init vConsole var vConsole = new VConsole

    1.4K30

    调试JS代码

    记录下近期对JS代码的调试过程 性能分析 启动程序之后,打开google浏览器对应页面,按F12或者Ctrl+Shift+I进入 开发者工具页面 目前主要使用的功能有: Performance....性能评估,比如我想看下页面刷新的性能瓶颈所在,先点击 按钮,然后进行页面操作,当页面刷新完成,再点击 按钮,则会生成性能报告,可以看到资源消耗,JS代码的执行逻辑等 Sources....性能报告页面的 部分,可以通过点击色块查看其所在的js代码文件,如 点击则会跳转到 功能栏,有了源文件就可以进行断点调试;这里注意部分js文件是压缩后的文件,建议手动修改程序替换成可读性更强的原始代码文件...,方便调试 Console....查看程序的打印输出,比如我想知道某个函数的执行时间,可以在js代码中进行修改 当js代码执行之后,可以在console输出中看到foo的执行时间 Network.

    19K10

    移动端网页调试方案

    微信平台 微信iOS端是采用wkwebkit进行渲染的,Android平台采用的是x5内核 debug方案 Android端 由于移动端网页开发不能直接打开developer tools,导致我们调试起来稍微麻烦...手机和电脑通过数据线连接,通过命令行执行,显示如图之后,表示成功连接 adb devices 执行结果 然后从chrome浏览器F12找到Remote devices RemoteDevices inspect...调试工具weinre 由于某些app并没有打开remote debug,而我们又要内嵌自己的页面进行调试,抓包只能检测网络请求。所以这个工具就有了使用场景。...它能够检测elements并查看js输出信息。...js脚本,anonymous是appid,你可以自定义 html [removed][removed] 在chrome浏览器中打开地址,选择elements和console监测页面 weinre结果 其他方案

    1.3K30

    js --- 执行机制

    JS为什么是单线程的?  JS最初被设计用在浏览器中,那么想象一下,如果浏览器中的JS是多线程的。...process1 删除了该dom,而process2 编辑了该dom,同时下达2个矛盾的命令,浏览器究竟该如何执行呢? 2 JS为什么需要异步?...如果JS中不存在异步,只能自上而下执行,如果上一行解析时间很长,那么下面的代码就会被阻塞。 对于用户而言,阻塞就意味着"卡死",这样就导致了很差的用户体验 3 JS单线程又是如何实现异步的呢?   ...是通过的事件循环(event loop),理解了event loop机制,就理解了JS执行机制。...,而是延迟了一段时间,满足一定条件后才去执行的,这类代码,我们叫异步代码。

    6.3K20

    Fiddler远程调试js

    使用Fiddler调试本地js   在我们前端开发的日常工作中,发现服务器上某个css/javascript文件有问题,需要修改,那真是家常便饭。...假设我们发现这个页面有问题,需要修改所引用的js文件()。 第一步:用Fiddler查看页面的数据流列表,找到这个js文件的session ?  ...在这个js session上右键点击,选择“Save – Response –Response Body…”,将js文件的内容保存到本地。记住存的位置,下面我们会用到这个保存下来的文件。...通过以上几个步骤,我们演示了怎样将HTTP请求重定向到本地的文件,进行web调试。...这种调试方式不需要发布到线上再验证,避免了修改不成功、对用户造成影响的风险,而且不需要搭建复杂的开发服务器等开发环境,非常适合快速web调试

    10K30

    JS执行机制

    JS执行机制 以下代码执行的结果是什么?...console.log(1); setTimeout(function () { console.log(3); }, 0); console.log(2); 1.1 JS 是单线程...单线程就意味着,所有任务需要排队,前一个任务结束,才会执行后一个任务。这样所导致的问题是: 如果 JS 执行的时间过长,这样就会造成页面的渲染不连贯,导致页面渲染加载阻塞的感觉。...于是,JS 中出现了同步任务和异步任务。 同步 ​   前一个任务结束后再执行后一个任务,程序的执行顺序与任务的排列顺序是一致的、同步的。...他们的本质区别: 这条流水线上各个流程的执行顺序不同。 1.3 JS执行机制(事件循环) 1. 先执行执行栈中的同步任务。 2. 异步任务(回调函数)放入任务队列中。 3.

    7.4K20

    开发移动端网页调试方法

    大家在开发pc端网页的时候调试很方便,直接用浏览器打开就可以了,但是如何进行移动端网页调试呢。...下面我来说几个办法 首先,我向大家推荐一下Chrome浏览器,大家都知道主流浏览器有一个调试模式,一般都是按F12调出,就会出现如下图 ?...这是在我这个博客首页下按下F12出现的界面,点击上图红色圈圈出的位置就是使用移动端调试。点击之后出现下图 ?...大致的移动测试调试都可以在这里进行。但是这并不完全精确,精确的调整还需要到真机中进行测试。...一般我们在开发网页过程中都会安装服务器运行环境,最普遍的是tomcat和phpAdmin两种,关于这两种运行环境我就不在这里介绍了,我重点说一下如果通过移动端连接pc端建立的服务器里部署的网页

    1.1K20

    JS执行顺序

    javascript给人的直观感受是,从上往下执行,但实际上却不是这样的,先看个例子 1. console.log(test); 2. var test = "你好"; 3. console.log(...因为javascript执行时,在同一个作用域内是先编译再执行 编译的时候会编译 function 和 var 这两个关键词定义的变量,编译完成后从上往下执行并向变量赋值 所以执行第1行时, var test...已经执行过了,所以test不会报错,而test2就会报错 需要注意的是,对 var test 执行编译时,只是先定义了 test 这个变量,并不会把 "你好" 这个值赋给test,而是到第2行时才给test...赋值的,这就是为什么第1行的执行结果是 undefined 对于上面的例子,可以这样理解 //先编译 var 定义的变量 1. var test; //编译完成后,从上到下执行代码 2. console.log...//执行结果是"你好" function test() { console.log("你好"); } 模拟编译执行过程 //找到 function 定义的部分进行编译 //以函数名作为变量名,同时用函数赋值

    9.2K60

    使用Firefox轻松调试JS

    Firefox调试JS的功能真的很不错,推荐一下! 在页面上点击右键,再点击“查看元素”,如图: ? 就会弹出Firefox的开发者界面,点击“调试器”,如图: ?...一步步调试代码 你可以一步步的执行代码。这对代码调试非常有用。 ? 使用断点调试 断点调试可以终止代码的执行,你可以通过指定代码范围来查看错误是不是在指定代码范围内。这对于 错误调试很有用。...如果你点击"Step over(单步跳过)" 按钮, Firebug 会更新所有变量直到你在右侧窗口中终止断点执行。 ? Firefox的JS调试功能非常强大,感觉试一下吧!...点击调试器tab页,刷新要调试的页面,调试器主窗口会出现要调试的代码 ?...点击暂停按钮,点击后按钮状态改变,同时右边的三个调试步骤变为可操作状态,调试步骤的作用可参考IE浏览器javascript调试篇的讲解。同时,在代码行上面打断点。

    6.1K20

    网页调试之debugger原理与绕过

    当我们调试JS的时候,时常会遇见无限debugger。无限debugger的原理是什么呢?它在何时触发?如何绕过?...debugger 语句用于停止执行 JavaScript(以下简称JS),并调用 (如果可用) 调试函数。 使用 debugger 语句类似于在代码中设置断点。...设置debugger的原理去对抗反爬,其核心原理就是如果调试工具可用,则调试语句将执行.也就是经常一打开就跳出debugger。...(经过调试是这样的,如果不准确请自行完善哦) debugger绕过原理 debugger的绕过也很简单,我个人总结共有两种大的方向。它们分别是替换、掠过。其原理都是不让debugger执行。...个人并不推荐新手使用替换法中的方法 替换法 JS注入 重写(Hook) 掠过法 Never pause here 条件断点 JS注入 实现js注入的方式有很多,例如chrome Devtools的overrides

    8.5K70
    领券