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

2022秋招前端面试题(六)(附答案)

然后是实际目标接受事件。最后一个阶段是时间冒泡阶段,可以在这个阶段对事件做出响应。虽然捕获阶段规范规定不允许响应事件,但是实际还是会执行,所以有两次机会获取到目标对象。<!...thisArg(可选): 执行 callback 时,用于 this 值。返回值:一个、由通过测试元素组成数组,如果没有任何数组元素通过测试,则返回空数组。...“reducer” 函数,包含四个参数:preVal:一次调用 callback 时返回值。...一次调用时,若指定了初始值 initialValue,其值则为 initialValue,否则为数组索引为 0 元素 array[0]。curVal:数组中正在处理元素。...怎么加事件监听,两种onclick 和 addEventListener事件传播机制(事件流)冒泡和捕获事件循环机制 (Event Loop)事件循环机制从整体上告诉了我们 JavaScript 代码执行顺序

96320

如何制作自己原生 JavaScript 路由

只要你了解实现它所涉及所有部分,就可以相对容易原生 JavaScript 创建自己路由。...history.back() 与 history.go(-1) 相同,或者当用户浏览器单击 Back 按钮时。你可以用任何一种方法达到相同效果。...我们只需将存储元素 id 属性 clicked 元素 id 传递给它即可:home,about,gallery 等。它们应与你要导航到实际页面一致。...但这就是它在客户端上工作方式。 初始化服务器端路由负载 将它们放在一起还需要再执行一个步骤。例子,只用了 router.html。...当你第一次 PWA 中加载此路由时,必须确保如果直接在地址栏输入/page/home时,它可以工作。 到目前为止,我们仅从前端更改了路由器地址。

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

我工作中用到性能优化全面指南

现代JavaScript高级小册 深入浅出Dar 现代TypeScript高级小 Web开发,Web性能优化是一个重要的话题。...最小化和压缩代码 构建过程,为了减少文件大小和加载时间,通常会对JavaScript代码进行最小化和压缩处理。这包括移除不必要空格、换行、注释,以及缩短变量和函数名。...我们可以通过一些方法来优化循环,例如:避免循环中进行不必要计算,使用倒序循环,使用forEach或map等函数。...// 不好写法 var half = n / 2; // 好写法 var half = n >> 1; 避免循环中创建函数 循环中创建函数会导致性能问题,因为每次迭代都会创建一个函数实例。...,可以使用双缓冲技术,即先在离屏画布上进行绘图,然后一次性将离屏画布内容复制到屏幕,这样可以避免屏幕闪烁,并且提升绘图性能。

25440

抛开插件,你真的懂拖动怎么实现吗?

回到正题,本章将分享一些关于 Javascript 拖动内容,探索拖动过程奥秘。 元素拖动 刚开始,咱们循序渐进,先来实现一个最简单功能,让一个元素变成可拖动元素。 布局与样式: <!...这里用上了 getBoundingClientRect[7] API,其作用是为了优化前面 mouseMoveHandler 函数,需要不断去记录鼠标上一个位置繁琐过程。...大概二者区别如下: 1️⃣ 拖动元素位置 = 拖动元素原本位置 + 拖动距离 2️⃣ 拖动元素位置 = 根据鼠标最新位置直接计算拖动元素最新位置 = 鼠标最新位置 - 鼠标拖动元素距离 鼠标拖动元素距离...,如果是局部,需要在共同元素加上relative,小编这里父元素是body,就不用了。...咱们仅需要改动 mouseUpHandler 函数,拖动结束时候将列表子项索引信息同步回原表格,然后把列表移除就可以了。

4910

JavaScript性能优化怎么实现?12种优化方式你知道嘛

建议将多个DOM操作合并为一个操作,或者使用DocumentFragment来批量插入DOM元素。...尽量避免循环中修改样式属性或获取布局信息。如果需要对多个样式进行修改,可以使用CSSclass切换。...下面是一些常见JavaScript性能优化技巧和实践: 使用Web Workers: 对于涉及大量计算或耗时操作任务,可以将其放入Web Worker,在后台线程运行,避免阻塞主线程,提高页面响应性能...代码进行优化和压缩,去除不必要空格、注释和代码块,缩小文件体积,加快加载 通过合理算法和数据处理方式优化代码: 假设我们需要计算一个数组中所有元素总和,我们可 以使用reduce方法来避免显式循环...下面是一个简单Web Worker示例: // 主线程创建Web Worker const worker = new Worker('worker.js'); // 向Web Worker发送消息

28210

这次把 javascript 闭包给你讲明明白白

将函数作为另一个函数返回值 2. 将函数作为实参传递给另一个函数调用 --> // 1....使用函数内部变量函数执行完后, 仍然存活在内存(延长了局部变量生命周期) 2. 让函数外部可以操作(读写)到函数内部数据(变量/函数) 问题: 1....函数执行完后, 函数内部声明局部变量是否还存在? 一般是不存在, 存在于闭变量才可能存在 2. 函数外部能直接访问函数内部局部变量吗?...每次点击left初始值为1,一次已经为+了很多次,上次已经为+了非常多次。渲染时候你就会看到一会1px一会很多px鬼畜情况,也就是动画抖动(渲染一次抖动一次)。...因为每点击一次就会有一个定时器100ms轮询改变left变量,这个left变量对于click回调函数来说是的共有的一块作用域。所以越来越多定时器不断left++,你就看到了加速现象。

38500

4个Javascript for 循环

2.3 、关于数组真相 数组是Javascript一个对象,Array索引是属性名。事实Javascript “数组”有点误导。...因此,Javascript 从来没有 Array 索引,只有“0”、“1”等属性。 有趣是,每个 Array 对象都有一个 length 属性,这使得它行为更像其他语言中数组。...与for-in搜索每个属性相比,代码只关注给定属性,节省了循环开销和时间。 3、forEach ES5 ,引入了一个循环,即 forEach 循环。...另外,forEach 会遍历数组所有元素,但是 ES5 定义了一些其他有用方法,下面是一部分: every:循环一次返回false后返回 some:循环一次返回 true 后返回 filter...:返回一个元素满足回调函数新数组 map:返回之前处理原始数组元素 reduce:依次处理数组元素,将上一次处理结果作为下一次处理输入,最终得到最终结果。

45040

如何使用 HTML、CSS 和 Vanilla JavaScript 以及本地存储创建待办事项应用程序

互联网建立与数据交互基础:从用户获取数据、存储数据、更新和删除数据。待办事项应用程序是练习这些基本技能最佳工具。...本教程,我们将介绍如何使用 HTML、CSS 和 JavaScript 创建功能齐全待办事项应用程序。...删除任务 定义一个函数,名为removeTask() function removeTask(){ } 函数内部removeTask(),我们想要获取 li 元素 data 属性并从 DOM 删除任务...liElement然后我们从 DOM 删除。 最后,我们获取 li 元素 data 属性值并将其存储名为 变量taskId。...本地存储是一个允许您在浏览器存储数据对象。数据以键值对字符串形式存储。即使关闭浏览器后,存储浏览器数据仍然存在。只有清除缓存后,它才会被删除。

7710

前端核心JavaScript

如果符合条件,则重复执行循环体;如果不符合条件,则退出循环。 do…while语句跟while语句是非常相似的,并且任何一个都可以转换成等价另外一个。...然后定义一个判断条件i<n; 只要i小于n就会执行for循环程序。最后定义一个循环表达式i++,也就是说,每次循环之后都会进行一次i++。...全局变量一般主程序定义,其有效范围是从定义开始,一直到整个程序结束为止。说白了,全局变量在任何地方都可以用。   局部变量一般函数定义,其有效范围只限于函数之中,函数执行完了就没了。...(2)属性节点和文本节点看起来像是元素节点一部分,但实际,它们是独立节点,并不属于元素节点。 (3)只有元素节点才可以拥有子节点,属性节点和文本节点都无法拥有子节点。...1、函数体,非显式或隐式地简单调用函数时,严格模式下,函数内 this 会被绑定到 undefined 非严格模式下则会被绑定到全局对象 window/global

1.5K30

前端技术工具类文章

如设置animation=1000表示1秒过渡动画效果 handle :handle=".mover" 只有当鼠标移动到css为mover类元素才能拖动 filter :filter=".unmover...() 方法返回一个给定对象自身所有可枚举属性值数组,值顺序与使用[for...in]循环顺序相同 ( 区别在于 for-in 循环枚举原型链属性 )。...[描述] Object.values()返回一个数组,其元素是在对象找到可枚举属性值。属性顺序与通过手动循环对象属性值所给出顺序相同。...JavaScript Array filter() 方法 filter() 方法创建一个数组,新数组元素是通过检查指定数组符合条件所有元素。...Array.prototype.forEach() forEach() 方法对数组每个元素执行一次给定函数。

1.2K30

js 事件笔记

一、事件简述 1、事件概念 Web, 事件浏览器窗口中被触发,执行事先绑定事件处理器(也就是事件触发时会运行代码块),对事件做出响应。...用户浏览器任何一个操作都会去触发一个事件,JavaScript采用异步事件驱动编程模型,当文档、浏览器、元素或与之相关对象发生特定事情时,浏览器会产生事件。...事件处理程序是预先设定,我们需要提前定义好某些事件发生了该怎么处理,这个过程叫做绑定事件处理程序 2、JavaScript指定事件处理程序 2.1原理: JavaScript指定事件处理程序就是把一个函数赋值给一个元素事件处理程序属性...触发DOM某个事件时候会产生一个事件对象event,这个对象包含着所有与事件有关信息,包括产生事件元素、事件类型等相关信息。...我这里不做赘述 2.5stopPropagation() 阻止事件 DOM 中继续传播,防止再触发定义别的节点监听函数,但是不包括在当前节点其他事件监听函数。

11K21

【JS】974- JavaScript 哪一种循环最快呢?

下面我会举个对一个包含超过一百万项元素数组执行一次循环遍历例子。 声明:console.time() 结果准确度很大程度上取决于我们运行测试系统配置。...2. forEach 这个方法需要接受一个回调函数作为输入参数,遍历数组一个元素,并执行我们回调函数(以元素本身和它索引(可选参数)作为参数赋予给回调函数)。...forEach 还允许回调函数中使用一个可选参数 this。...JavaScript 短路运算符,即不能在每一次循环中跳过或结束循环。...退出循环后,生成器被关闭,并尝试再次迭代,不会产生任何进一步结果。 4. for in for…in 会在对象所有可枚举属性迭代指定变量。

1.6K20

2019年初 JS面试必考(概率大)面试题

按照 W3C 标准事件:首是进入捕获阶段,直到达到目标元素,再进入冒泡阶段 事件执行次数(DOM2-addEventListener):元素绑定事件个数 注意 1:前提是事件被确实触发 注意 2:...,而不是简单具有嵌套关系 一个 DOM 同时绑定两个点击事件:一个用捕获,一个用冒泡。...函数节流(throttle)是指阻止一个函数很短时间间隔内连续调用。 只有当上一次函数执行后达到规定时间间隔,才能进行下一次调用。... js ,函数即闭包,只有函数才会产生作用域概念 闭包有三个特性: 函数嵌套函数 函数内部可以引用外部参数和变量 参数和变量不会被垃圾回收机制回收 请解释一下 JavaScript 同源策略...执行时候,有且只有一个主线程来处理所有的任务。

95020

jQuery VS JavaScript原生API

但JS原生API写法依旧;并且有时候只不过小写一个Demo,或者产品只有少量前端效果或DOM操作,就去花时间&空间引入jQuery,或者React?不免有取宰牛之刀以杀鸡之嫌。...jQuery温柔乡里,是否还能记得原生她javascript原生?如果仅为使用个选择器($)或者类似的东西,是否真的有必要加载jQuery?故此了解下JS常用原生写法还是蛮有必要。...[update-2015-12-07]有看到抛弃jQuery,拥抱原生JavaScript一文中提到,jQuery 代表着传统以 DOM 为中心开发模式,但现在复杂页面开发流行是以 React 为代表以数据...Show me the code.直接看代码;以下是jQuery和JavaScript实现相同操作等价代码: 选择元素 // jQuery var els = $('.el'); //===...修改和检索CSS属性,这样会比使用jQuery CSS函数更加简单快速,并且没有任何不必要代码。

1.6K60

2022秋招前端面试题(九)(附答案)

六十四位符号位占一位,整数位占十一位,其余五十二位都为小数位。因为 0.1 和 0.2 都是无限循环二进制了,所以小数位末尾处需要判断是否进位(就和十进制四舍五入一样)。...虽然捕获阶段规范规定不允许响应事件,但是实际还是会执行,所以有两次机会获取到目标对象。<!...事件是如何实现?基于发布订阅模式,就是浏览器加载时候会读取事件相关代码,但是只有实际等到具体事件触发时候才会执行。... Web 端,我们常见就是 DOM 事件:DOM0 级事件,直接在 html 元素绑定 on-event,比如 onclick,取消的话,dom.onclick = null,同一个事件只能有一个处理程序...thisArg(可选): 执行 callback 时,用于 this 值。返回值:一个、由通过测试元素组成数组,如果没有任何数组元素通过测试,则返回空数组。

2.6K30
领券