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

在 Chrome DevTools 中调试 JavaScript

console.log() 方法相比,断点具有一些优势: 使用 console.log(),需要手动打开源代码,查找相关代码,插入 console.log() 语句,然后重新加载此页面,才能在控制台中看到这些消息...控制台 控制台除了查看 console.log() 消息以外,还可以使用控制台对任意 JavaScript 语句求值。...网址包含字符串模式时 事件侦听器 在触发 click 等事件后运行的代码中 异常 在引发已捕获或捕获异常的代码行中 函数 任何时候调用特定函数时 1....事件侦听器断点 如果想要暂停触发事件后运行的事件侦听器代码,可以使用事件侦听器断点。 您可以选择 click 等特定事件或所有鼠标事件事件类别。...我们一开始使用的例子就是事件侦听器断点,这里就不演示了。 6. 异常断点 如果想要在引发已捕获或捕获异常的代码行暂停,可以使用异常断点。 点击 Sources 标签。

4.8K20
您找到你想要的搜索结果了吗?
是的
没有找到

急速 debug 实战一(浏览器-基础篇)

第 3 步:使用断点暂停代码 如果退一步思考应用的运作方式,您可以根据经验推测出,使用 Add Number 1 and Number 2 按钮关联的 click 事件侦听器时计算的和不正确 (5+1...这是因为 inputsAreEmpty() 求值结果为 false,所以 if 语句的代码块执行。 这就是单步调试代码的基本思路。...方法 3:控制台 除了查看 console.log() 消息以外,您还可以使用控制台对任意 JavaScript 语句求值。 对于调试,您可以使用控制台测试错误的潜在解决方法。...事件侦听器 在触发 click 等事件后运行的代码中。 异常 在引发已捕获或捕获异常的代码行中。 函数 任何时候调用特定函数时。 代码行断点 在知道需要调查的确切代码区域时,可以使用代码行断点。...事件侦听器断点 如果想要暂停触发事件后运行的事件侦听器代码,可以使用事件侦听器断点。 您可以选择 click 等特定事件或所有鼠标事件事件类别。 点击 Sources 标签。

3.3K10

前端开发必备之Chrome开发者工具(上篇)

在 Event Listeners 窗格中查看 DOM 节点关联的 JavaScript 事件侦听器 ?...启用 Ancestors 复选框时查看祖先实体事件侦听器,即除了当前选定节点的事件侦听器外,还会显示其祖先实体的事件侦听器 启用 Framework listeners 复选框时查看框架侦听器,DevTools...会自动解析事件代码的框架或内容库封装部分,然后告诉您实际将事件绑定到代码中的位置 控制台面板(Console) 在开发期间,可以使用控制台面板记录诊断信息,或者使用它作为 shell 在页面上 JavaScript...事件监听器断点 当想要暂停事件侦听器代码时,使用事件侦听器断点 设置事件监听器断点: 点击 Sources 选项卡。 展开 “Event Listener Breakpoints” 窗格。...异常断点 当您想暂停引发捕获或捕获异常的代码行时,使用异常断点 设置异常断点: 点击 Sources 选项卡。 点击暂停 ? ,启用后变成蓝色。

8.2K111

分享 10 个你可能不知道的 Devtools 技巧!

禁用调试语句 有些网站会故意使用 debugger 语句来禁止你调试,只要 DevTools 关闭,这个语句就没有效果,但是只要你打开它,DevTools 就会暂停网站的主线程。...禁用事件侦听器 事件侦听器有的时候也会妨碍网页的调试。如果我们正在排查某个特定的问题,但每次移动鼠标或使用键盘时,都会触发不相关的事件侦听器,这可能会让我们很难专注的排查问题。...DevTools 的用户界面其实也是使用 HTML、CSS 和 JavaScript 构建的,这意味着它也是由浏览器渲染的 Web 界面。...在基于 Chromium 的浏览器中,我们可以使用 Coverage 工具来识别代码的哪些部分使用。...点击开始检测后,会重新刷新页面,并展示覆盖率报告,打开文件后它可以告诉我们具体哪些代码部分使用。 10.

38810

任务,微任务,队列和时间表

好吧好吧,和我在一起… 计划了任务,以便浏览器可以从内部访问JavaScript / DOM,并确保这些操作顺序发生。在任务之间,浏览器可以呈现更新。...从鼠标单击到事件回调,分析HTML一样需要安排任务,在上例中为setTimeout。 setTimeout等待给定的延迟,然后为其回调安排新任务。...使用Edge,我们已经看到它的队列承诺不正确,但是它也无法耗尽点击侦听器之间的微任务队列,相反,它是在调用所有侦听器之后执行的,这mutate在两个click日志之后占单个日志。错误票。...使用上面的相同示例,如果执行以下命令会发生什么: inner.click() 这将像以前一样开始事件调度,但是使用脚本而不是真正的交互。...上面的规则确保微任务不会中断执行中的JavaScript。这意味着我们不处理侦听器回调之间的微任务队列,而是在两个侦听器之后进行处理。 有什么关系吗? 是的,它会在不起眼的地方(哎呀)咬你。

2.2K20

一文看懂 Node.js 中的多线程和多进程

它同步执行任务,然后将结果返回到事件循环,最后事件循环将结果提供给回调。 总而言之,工作池负责异步 I/O 操作,即系统磁盘和网络的交互。...工作线程之间的通信是基于事件的,即侦听器设置为在工作线程发送事件后立即调用。...最常见的 4 个事件是: worker.on('error', (error) => {}); 当工作线程中有捕获的异常时发出。接下来工作线程终止,并且该错误可以作为回调中的第一个参数使用。...方法 2 – 涉及生成 worker 线程并为消息事件设置侦听器。每次触发该消息时,辅助线程都会执行代码,并将结果发送回父线程。辅助线程保持活动状态,以备将来使用。 方法 2 也被称为工作池。...如果需要,则可以在 worker 文件的开头包含一个简单的 if 语句。这样可以确保它仅作为工作线程运行。 parentPort – MessagePort 的实例,用于父线程进行通信。

3.2K10

【JS】2029- 如何创建 JavaScript 自定义事件

例如,只有购物车才有itemAdded事件,只有游戏才有levelCompleted事件。 解耦:分离了创建事件(如表单提交)的代码侦听事件(如更新进度条)的代码。提高了代码的可维护性。...数据传输:可以使用detail属性将自定义数据附加到事件,从而允许传递信息性消息。 内置事件 vs. 自定义事件 JavaScript 附带了一组涵盖常见交互的内置事件。...创建自定义事件的关键步骤 事件初始化:首先,我们需要使用CustomEvent构造函数初始化新的自定义事件。 构造函数有两个参数:事件类型和可选对象,可选对象包含要随事件一起传递的所有其他数据。...,我们需要将事件侦听器添加到目标元素中。...事件侦听器“侦听”特定事件类型,并在特定事件发生时执行函数。

10210

【Node.js】1430- 15 个常见的 Node.js 面试问题及答案

Node.js JavaScript 有什么不同? 2. 什么时候用 Node.js?...所有 EventEmitter 类都可以使用 eventEmitter.on() 函数将事件侦听器附加到事件。然后一旦捕捉到这样的事件,就会同步地逐个调用它的侦听器。...如何处理 Node.js 中捕获的异常? 我们可以在进程级别捕获应用程序中捕获的异常。...同时,事件循环遍历事件队列中的每个事件,并调用附加的回调来处理事件响应。 这就是 Node.js 中所使用的反应堆模式。 10. 单线程多线程网络后端相比有哪些好处?...测试应用程序时使用 stub,模拟给定组件或模块的行为,你可以将精力集中在要测试的代码部分。通过使用 stub 代替测试无关的组件,不必担心外部组件会影响结果。

1.7K20

15 个常见的 Node.js 面试问题及答案

Node.js JavaScript 有什么不同? ? 2. 什么时候用 Node.js?...所有 EventEmitter 类都可以使用 eventEmitter.on() 函数将事件侦听器附加到事件。然后一旦捕捉到这样的事件,就会同步地逐个调用它的侦听器。...如何处理 Node.js 中捕获的异常? 我们可以在进程级别捕获应用程序中捕获的异常。...同时,事件循环遍历事件队列中的每个事件,并调用附加的回调来处理事件响应。 这就是 Node.js 中所使用的反应堆模式。 10. 单线程多线程网络后端相比有哪些好处?...测试应用程序时使用 stub,模拟给定组件或模块的行为,你可以将精力集中在要测试的代码部分。通过使用 stub 代替测试无关的组件,不必担心外部组件会影响结果。

1.7K20

1000多个项目中的十大JavaScript错误以及如何避免

要验证它们不相等,请使用严格的相等运算符: ? 在实际情况中,导致这种错误的原因之一是:在元素加载之前,就尝试在 JavaScript使用 DOM 元素。...在这个例子中,我们可以通过添加一个事件侦听器来解决这个问题,事件侦听器会在页面准备就绪时通知我们。...(unknown): Script Error 当捕获的 JavaScript 错误违背跨边界原则时,就会发生脚本错误。...这是在 IE 的 Web 应用程序中使用 JavaScript 命名空间出现的一个常见问题。出现这种情况的绝大部分原因是IE无法将当前名称空间内的方法绑定到this关键字。...如果在使用事件处理系统时遇到此错误,请确保使用传入的事件对象作为参数。IE 这样的浏览器提供了全局变量事件,Chrome 会自动将事件变量附加到处理程序中,Firefox 则不会自动添加事件变量。

8.2K40

前端MVC Vue2学习总结(三)——模板语法、过滤器、计算属性、观察者、Class Style 绑定

.capture - 添加事件侦听器使用 capture 模式。 .self - 只当事件是从侦听器绑定的元素本身触发时才触发回调。 .....passive - (2.3.0) 以 { passive: true } 模式添加侦听器 用法: 绑定事件监听器。事件类型由参数指定。...在监听原生 DOM 事件时,方法以事件为唯一的参数。如果使用内联语句语句可以访问一个 $event 属性:v-on:click="handle('ok', $event)"。 示例: <!....capture - 添加事件侦听器使用 capture 模式。 .self - 只当事件是从侦听器绑定的元素本身触发时才触发回调。 ....添加修改功能使用模式窗口 支持全选反选,隔行换色光棒效果 详细是点击时在弹出层中显示当前商品的所有信息 尝试分页(选做) ?

4.7K100

Vue.js入门教程-指令

指令的值限定为绑定表达式(JavaScript 表达式及过滤器规则)。指令的职责就是当其表达式的值改变时把某些特殊的行为应用到 DOM 上。 1.2 示例 ?...因此,如果需要频繁切换,推荐使用 v-show,如果条件在运行时改变的可能性较少,推荐使用 v-if。 五、v-else 5.1 限制 前一兄弟元素必须有 v-if 或 v-else-if。 ? ?...七、v-for 基于源数据多次渲染元素或模板块(JavaScript的遍历) 7.1 特点语法 v-for 指令必须使用特定的语法 alias in expression,为当前遍历的元素提供别名 ?...八、v-on 绑定事件监听器。事件类型由参数指定。表达式可以是一个方法的名字或一个内联语句,如果没有修饰符也可以省略。 8.1 示例 ?...(3).capture - 添加事件侦听器使用 capture 模式。 (4).self - 只当事件是从侦听器绑定的元素本身触发时才触发回调。 (5).

2.2K40

如果面试官让你讲讲发布订阅设计模式?

,不妨一起来看看。...发布订阅模式 二、手搓一个发布订阅事件中心 “纸上得来终觉浅,绝知此事要躬行”,所以根据定义,我们尝试实现一个JavaScript版本的发布订阅事件中心,看看会遇到哪些问题?..._eventsMap = new Map(); // 事件回调函数的映射Map } /** * 事件订阅 * * @param eventName 事件名 * @param...三、学习EventEmitter3的设计实现 虽然我们按照自己的理解实现了一版,但是没有对比我们也不知道好坏,因此一起看看 EventEmitter3 这个优秀“极致性能优化”的库是怎么去处理事件订阅发布...在JavaScript中万物是对象,函数也是对象,因此存储器的实现: function Events() {} 3.2 事件侦听器实例 同理,我们上述使用singleEvent对象来存储每一个事件侦听器实例

2.7K30

Vue2.0原理篇

注意 自定义事件 绑定自定义事件 触发自定义事件 解绑自定义事件 注意 应用场景 全局事件总线 安装全局事件总线 使用全局事件总线 提供数据: 注意 应用场景 消息订阅发布 使用步骤 注意...…),即写在头标签内 举例: 总结 都将其value视为JavaScript表达式解析 注意区分js表达式和js语句 js表达式 js表达式...eg:计算属性里不能用定时器 侦听属性watch 什么是侦听器 监听一个数据,当该数据变化时,侦听器会拿到这个数据的新值旧值,程序员可以对这两个值进行一些操作 即当数据变化时,就立即执行对应的函数...局部混入:mixins:[‘xxx’] 注意 若混入的数据,组件中的语句冲突,则以组件中的数据为准 钩子函数冲突,则全部使用 自定义事件 绑定自定义事件 <组件 @自定义事件="回调函数" ref...bus可以自定义,建议使用 bus规范 应用场景 任意组件之间通信 消息订阅发布 原理和全局事件总线一样,建议使用事件总线,毕竟Vue出品 使用步骤 1.安装pubsub: npm i pubsub-js

4.2K10

SqlAlchemy 2.0 中文文档(二十六)

如果使用 AttributeEvents.include_key 设置事件,将根本不传递此参数给事件;这是为了允许不包括 key 参数的现有事件处理程序向后兼容。...如果使用AttributeEvents.include_key来设置事件,则根本不会将参数传递给事件;这是为了允许不包括key参数的现有事件处理程序保持向后兼容性。...如果使用 AttributeEvents.include_key 设置事件,参数根本不会传递给事件;这是为了允许现有事件处理程序不包含 key 参数的事件处理程序向后兼容。...通常情况下,这个方法会与AttributeEvents.append()事件一起使用。...如果使用 AttributeEvents.include_key 来设置事件,则根本不会传递该参数给事件;这是为了不包括 key 参数的现有事件处理程序的向后兼容性。

1000

1000多个项目中的十大JavaScript错误以及如何避免

要验证它们不相等,请使用严格的相等运算符: 在实际情况中,导致这种错误的原因之一是:在元素加载之前,就尝试在 JavaScript使用 DOM 元素。...在这个例子中,我们可以通过添加一个事件侦听器来解决这个问题,事件侦听器会在页面准备就绪时通知我们。...这是在 IE 的 Web 应用程序中使用 JavaScript 命名空间出现的一个常见问题。出现这种情况的绝大部分原因是IE无法将当前名称空间内的方法绑定到this关键字。...[image.png] 如果在使用事件处理系统时遇到此错误,请确保使用传入的事件对象作为参数。...IE 这样的浏览器提供了全局变量事件,Chrome 会自动将事件变量附加到处理程序中,Firefox 则不会自动添加事件变量。

6.2K30

JavaScript中的对象管理和事件清理

JavaScript作为一种垃圾回收语言,通常我们不必关心对象的分配和释放问题。但偶尔,在处理回调函数时,即使不再有任何有意义的引用,也很容易让对象永远保持活跃状态。...例如,自定义元素可能希望在window对象上监听"scroll"事件。但是,简单地向window添加事件侦听器意味着保留对对象的引用。...为了实现这一点,我们可以利用两个特性:首先,将事件侦听器中对this的强引用替换为WeakRef将阻止事件侦听器在没有其他引用存在时保持对象活跃。...清理事件侦听器的一种简单方法是将AbortControllerFinalizationRegistry结合使用。...现在我们只需要在创建时注册对象,并将控制器的信号传递给事件侦听器

17300
领券