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

分享近百道JavaScript 基础面试题,帮助你巩固JavaScript 基础知识

解释 JavaScript 事件委托。 事件委托是一种技术,其中父元素处理由其子元素触发事件。它有助于优化性能并减少事件侦听器。 9. JavaScript 闭包是什么?...32.解释JavaScript事件委托概念。 事件委托是一种将单个事件侦听器附加到父元素以处理由其子元素触发事件技术。它有助于优化性能并减少内存消耗。 33....你可以使用各种方法从数组删除重复项,例如使用 Set、filter() 或 reduce()。 61. 在 JavaScript 如何检查变量是否为数组?...你可以使用 Array.isArray() 方法来检查变量是否为数组。 62.解释JavaScript事件委托概念。 事件委托是一种将事件侦听器附加到父元素并侦听在其子元素上发生事件技术。...事件处理涉及通过将事件侦听器附加到元素并在这些事件发生时执行代码来响应用户与网页交互。 81. JavaScript isNaN() 函数用途是什么?

18010

在 Chrome DevTools 调试 JavaScript

二、熟悉一下 Sources 面板 DevTools 可为更改 CSS、分析页面加载性能和监控网络请求等不同任务提供许多不同工具。 我们就在 Sources 面板调试 JavaScript。...断点可在执行代码过程暂停代码,并在此时及时检查所有相关变量值。...网址包含字符串模式时 事件侦听器 在触发 click 等事件后运行代码 异常 在引发已捕获或未捕获异常代码 函数 任何时候调用特定函数时 1....这样就可以拦截包含getUserInfo字符串请求,如果添加一个空,则可以拦截所有请求! 5. 事件侦听器断点 如果想要暂停触发事件后运行事件侦听器代码,可以使用事件侦听器断点。...您可以选择 click 等特定事件所有鼠标事件事件类别。 我们一开始使用例子就是事件侦听器断点,这里就不演示了。 6.

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

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

深呼吸… 每个“线程”都有自己事件循环,因此每个Web工作者都有自己事件循环,因此可以独立执行,而同一源上所有窗口都可以共享事件循环,因为它们可以同步通信。事件循环持续运行,执行所有排队任务。...真正有趣是,Safari和Firefox都在此发生了回归,此问题已得到修复。我想知道这是否只是一个巧合。 如何判断某物是使用任务还是微任务 测试是一种方法。...使用Edge,我们已经看到它队列承诺不正确,但是它也无法耗尽点击侦听器之间微任务队列,相反,它是在调用所有侦听器之后执行,这mutate在两个click日志之后占单个日志。错误票。...在调用每个侦听器回调之后…… 如果脚本设置对象堆栈现在为空,请执行微任务检查点 — HTML:在回调步骤3 之后进行清理 以前,这意味着微任务在侦听器回调之间运行,但.click()会导致事件同步分派,...上面的规则确保微任务不会中断执行JavaScript。这意味着我们不处理侦听器回调之间微任务队列,而是在两个侦听器之后进行处理。 有什么关系吗? 是的,它会在不起眼地方(哎呀)咬你。

2.2K20

使用 HTML、CSS、JavaScript 创建一个简单井字游戏

,但你可以查看源码完整代码。...如果你不想将所有内容都包含在此函数,请随意添加defer到脚本标记或将脚本标记移动到body. window.addEventListener('DOMContentLoaded', () => {...我们可以通过循环遍历图块数组并为每个图块添加一个事件侦听器来做到这一点。...(为了获得更好性能,我们只能向容器添加一个事件侦听器使用事件冒泡来捕获父级上磁贴点击,但我认为对于初学者来说这更容易理解。)...为此,我们将编写一个resetBoard函数在此函数,我们将棋盘设置X为由九个空字符串组成,将游戏设置为活动状态,移除播音员并将玩家更改回(根据定义X始终开始)。

1.9K21

Web 性能优化:缓存 React 事件来提高性能

这是 Web 性能优化第三篇,上一篇在下面看点击查看: Web 性能优化: 使用 Webpack 分离数据正确方法 Web 性能优化: 图片优化让网站大小减少 62% JavaScript中一个不被重视概念是对象和函数如何引用...修复 如果函数不依赖于组件(没有 this 上下文),则可以在组件外部定义它。 组件所有实例都将使用相同函数引用,因为该函数所有情况下都是相同。...Button click事件侦听器需要独立于 SomeComponent。...怎样才能解决这个难题呢输入记忆,或者简单地称为缓存。 对于每个唯一值,创建并缓存一个函数; 对于将来对该唯一值所有引用,返回先前缓存函数。 这就是我将如何实现上面的示例。...所述方法将在第一次使用值调用它时创建该值唯一函数,然后返回该函数。以后对该方法所有调用都不会创建一个新函数;相反,它将返回对先前在内存创建函数引用。

2K20

如何使用AngularJS和PHP为任何位置生成短而独特数字地址

您可以按照教程如何在Ubuntu 18.04上快速安装Git来安装和设置Git。 第1步 - 获取Google API密钥 在本教程,您将使用JavaScript创建Google Maps界面。...第6步 - 添加事件监听器 向应用程序添加交互元素有助于保持用户参与。我们将通过使用事件侦听器在此应用程序实现一些交互行为。 一个事件是发生在网页上任何行动。...在AngularJS事件侦听器使用通常遵循以下格式指令进行定义: ng-event_type=expression 在此步骤,我们将添加一个事件侦听器,它有助于在用户提交表单时将用户输入信息处理到...我们还将添加几个事件监听器,使应用程序更具交互性。具体来说,我们将使用这些侦听器更改应用程序映射中显示位置,放置标记,并在用户在表单输入信息时在该位置周围绘制一个矩形。...首先,将以下突出显示事件侦听器添加到开放标记。此代码告诉应用程序在用户通过表单提交信息时调用该processForm函数

13.1K20

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

使用断点,无需了解代码结构即可暂停相关代码。 在 console.log() 语句中,您需要明确指定要检查每个值。 使用断点,DevTools 会在暂停时及时显示所有变量值。...第 3 步:使用断点暂停代码 如果退一步思考应用运作方式,您可以根据经验推测出,使用与 Add Number 1 and Number 2 按钮关联 click 事件侦听器时计算和不正确 (5+1...在完成此设置后,DevTools 会忽略您已设置任何断点。 尝试使用不同值运行演示。 现在演示可以正确计算。 各类断点使用概览 断点类型 情况 代码行 在确切代码区域中。...事件侦听器 在触发 click 等事件后运行代码。 异常 在引发已捕获或未捕获异常代码函数 任何时候调用特定函数时。 代码行断点 在知道需要调查的确切代码区域时,可以使用代码行断点。...事件侦听器断点 如果想要暂停触发事件后运行事件侦听器代码,可以使用事件侦听器断点。 您可以选择 click 等特定事件所有鼠标事件事件类别。 点击 Sources 标签。

3.3K10

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

: document.getElementById('main-content').remove(); 查看元素事件侦听器 在 Event Listeners 窗格查看与 DOM 节点关联 JavaScript...会自动解析事件代码框架或内容库封装部分,然后告诉您实际将事件绑定到代码位置 控制台面板(Console) 在开发期间,可以使用控制台面板记录诊断信息,或者使用它作为 shell 在页面上与 JavaScript...这是因为开发者很少需要在 top 以外任意环境操作。 输入一个变量,期待返回一个值,只是为了查看该变量是否为 undefined(因为该变量是在不同环境定义),这会非常令人困惑 ?...事件监听器断点 当想要暂停事件侦听器代码时,使用事件侦听器断点 设置事件监听器断点: 点击 Sources 选项卡。 展开 “Event Listener Breakpoints” 窗格。...DevTools显示事件类别的列表,例如动画。 选中这些类别一个可以暂停该类别的任何事件,或者展开类别并检查特定事件。 ?

8.2K111

35道JavaScript 基础内容面试题

事件委托涉及将单个事件侦听器分配给多个元素共同祖先,从而允许处理其所有后代事件。这可以优化性能并减少事件侦听器数量。 6、Function.prototype.bind用法是什么?...参数对象是所有函数可用局部变量,包含函数参数类似数组列表。它提供了一种访问参数方法,无论函数签名定义数量如何。 14. 如何创建没有原型对象?...要检查值是否为 NaN,可以使用 isNaN() 函数或 Number.isNaN() 方法。 32. 如何检查一个值是否是数组?...如何在不使用%或模运算符情况下检查数字是否为偶数? 要在不使用模运算符情况下检查数字是否为偶数,可以使用按位 AND 运算符。...如何检查对象是否存在某个属性? 要检查对象是否存在某个属性,可以使用 hasOwnProperty 方法或 in 运算符。这些方法确保了检查对象属性是否存在可靠方法。 35.什么是AJAX?

6710

分享 35 道 JavaScript 基础面试题

事件委托涉及将单个事件侦听器分配给多个元素共同祖先,从而允许处理其所有后代事件。这可以优化性能并减少事件侦听器数量。 6、Function.prototype.bind用法是什么?...参数对象是所有函数可用局部变量,包含函数参数类似数组列表。它提供了一种访问参数方法,无论函数签名定义数量如何。 14. 如何创建没有原型对象?...要检查值是否为 NaN,可以使用 isNaN() 函数或 Number.isNaN() 方法。 32. 如何检查一个值是否是数组?...如何在不使用%或模运算符情况下检查数字是否为偶数? 要在不使用模运算符情况下检查数字是否为偶数,可以使用按位 AND 运算符。...如何检查对象是否存在某个属性? 要检查对象是否存在某个属性,可以使用 hasOwnProperty 方法或 in 运算符。这些方法确保了检查对象属性是否存在可靠方法。 35.什么是AJAX?

16010

40道ReactJS 面试问题及答案

它们提供了统一 API 来处理 React 事件,无论浏览器如何。 要在 React 中使用合成事件,您只需向组件添加事件处理程序即可。...事件对象: 在 HTML 事件对象会自动传递给事件处理函数。 在 React 事件对象也会自动传递给事件处理函数,但 React 会规范化事件对象以确保不同浏览器之间行为一致。...然后,客户端 JavaScript 会“水化” HTML,附加事件侦听器并重新建立任何客户端状态,使页面具有交互性。 32. 优化 React App 有哪些不同方法?...您可以根据不同路由、组件或其他逻辑划分将其拆分为单独文件,而不是一次性将整个应用程序代码发送到客户端。 这允许您仅加载当前视图所需代码,从而减少初始加载时间并提高性能。...它们可用于减少用户事件触发 API 调用数量并提高应用程序性能,而不会影响用户体验。 去抖动会延迟代码执行,直到用户在指定时间内停止执行特定操作。它导致函数在再次运行之前等待一定时间。

18510

JS 和 Node.js 事件驱动”是什么意思?

浏览器主题和观察者 如果 HTML 元素是主题,那么谁是观察者?任何注册为侦听器 JavaScript 函数都可以对浏览器事件做出反应。...回顾一下: HTML 元素是事件发送器。 JavaScript 中注册为侦听器函数是观察者。 所有这些组件构成了“一个小小事件驱动体系结构。...事件驱动如何用于 Node.js? Node.js 是用于基于 V8 引擎运行在浏览器之外(命令行工具和服务器端) JavaScript 环境。...; }); 这段代码创建了一个监听本地主机端口 8081 服务器。在 server 对象上,我们调用 on 方法来注册两个侦听器函数。...另一方面,侦听器函数是观察者。 但是那些 on 方法从哪里来呢? 了解 EventEmitter Node.js 所有事件驱动模块都扩展了一个名为 EventEmitter 根类。

8.4K20

JavaScript面试问题:事件委托和this

所有现代浏览器支持preventDefault方法,这个方法会阻止浏览器处理事件默认行为。一个常见示例就是链接,使用链接执行UI操作是一种常见做法。...使用事件委托能减少监听器数量,在元素容器上绑定事件意味着只需要一个监听器。这种方法缺点是,父容器侦听器可能需要检查事件来选择正确操作,而元素本身不会是一个监听器。...另一篇值得一读文章:Event Delegation In JavaScript this在JavaScript是怎么工作 this 关键字在JavaScript一种常用方法是指代码当前上下文...●如果this没有被设置,则默认指向全局对象,其通常是window ●如果一个函数运行了一个内联函数,比如一个事件监听器,则this指向内联函数代码。...操作this另一种方式是通过call、apply和bind。三种方法都被用于调用一个函数,并能指定this上下文,你可以让代码使用你规定对象,而不是依靠浏览器去计算出this指向什么。

1.3K50

最新24道vue2+vue3面试题带答案汇总

Vue 2 v-model 是如何工作? 答案:v-model 在 Vue 2 是一个语法糖,它背后实际上是绑定了输入元素 value 属性和 input 事件。...当用户更改输入值时,会触发 input 事件,从而更新数据模型。 Vue 2 生命周期钩子有哪些?...此外,还可以使用 provide 和 inject API 在组件树传递状态。 Vue 3 生命周期钩子与 Vue 2 有何不同?...过滤器函数总是接收表达式值(之前值)作为第一个参数。过滤器可以串联,即一个过滤器输出被用作下一个过滤器输入。 Vue虚拟DOM是什么,它如何提升性能?...因为VueDOM更新是异步,所以当我们修改数据后,视图并不会立即更新,而是会等待同一事件循环中所有数据变化完成之后,再统一进行视图更新。

14410

怎样修复 Web 程序内存泄漏

当你点击“获取快照(take snapshot)”按钮时,你已经捕获了该网页上特定 JavaScript VM 所有活动对象。...直观地讲,我们正在努力减少内存泄漏数量,所以我们不应该专注于总内存使用情况吗?嗯,这不是很好,有一个很重要原因。...大猩猩吃香蕉 让我们回到上面的 addEventListener 例子。泄漏来源是事件侦听器,该事件侦听器引用一个函数,该函数引用一个组件,该组件可能引用大量东西,例如数组、字符串和对象。...读取它方式是每个对象都由其下面的对象引用。 在上面的示例,有一个名为 someObject 变量,该变量由闭包(也称为“上下文”)引用,并由事件侦听器引用。...如果你知道要查找内容,代码审查还可以帮助捕获常见内存泄漏模式。 JavaScript 是一种内存安全语言,具有讽刺意味是,在 Web 应用泄漏内存有多么容易。

3.1K30

vue核心知识点

() 阻止事件默认行为 .capture 添加事件侦听器使用capture模式 .self 当事件是从侦听器绑定元素本身触发时才触发回调 ....特性名转换成camelCase .sync 语法糖,会拓展成一个更新父组件绑定值v-on侦听器 v-model 指令常用修饰符 .lazy 取代input监听change事件 .number 输入字符串转为数字...,这么做使vue变得非常快,但是这样也不总符合实际要求 因为两个模板使用了相同元素将不会清除用户已经输入内容,添加唯一值Key属性可以让这两个元素完全独立,不要复用它们 vue事件使用event对象...这段代码在运行之后会在控制台抛出错误,意思就是获取不到div元素,这里就涉及vue一个很重要概念:异步更新队列 异步更新队列 vue在观察到数据变化时,并不是直接更新DOM,而是开启一个队列,并缓冲在同一个事件循环中发送所有数据改变...,在缓存中会去除重复数据,从而避免不必要计算和DOM操作,然后,在下一个事件循环tick,Vue刷新队列并执行实际(已去重)工作。

1.8K10
领券