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

字节前端必会面试题

例如:a:hover {color: #FF00FF}p:first-child {color: red}总结: 伪通过元素选择器加⼊伪改变元素状态,⽽伪元素通过元素操作进⾏对元素改变。...因为事件冒泡过程中会上传到父节点,父节点可以通过事件对象获取到目标节点,因此可以把子节点监听函数定义父节点,由父节点监听函数统一处理多个子元素事件,这种方式称为事件委托事件代理)。...因此,比较好方法就是把这个点击事件绑定到他父层,也就是 ul ,然后执行事件再去匹配判断目标元素,所以事件委托可以减少大量内存消耗,节约效率。...动态绑定事件给上述例子中每个列表项都绑定事件很多时候,需要通过 AJAX 或者用户操作动态增加或者去除列表项元素,那么每一次改变时候都需要重新给新增元素绑定事件,给即将删去元素解绑事件;...如果用了事件委托就没有这种麻烦了,因为事件是绑定在父层,和目标元素增减是没有关系,执行到目标元素真正响应执行事件函数过程中去匹配,所以使用事件动态绑定事件情况下是可以减少很多重复工作

57020

jQuery基础

静态方法可以回调函数中通过return对比那里数组进行处理然后生成一个新数组返回 ### 其他静态方法 1.$.isWindow():判断传入对象是否是window对象...可以找一个入口函数执行之前就有的元素来监听动态添加某些事件 为什么要事件委托 新增节点没有click响应,因为jQuery入口函数加载$("ul>li").click没有把...中如果通过核心函数找到元素不知一个,那么添加事件时候,jQuery 会遍历所有找到元素,给所有找到元素添加事件 */...click响应,因为jQuery入口函数加载$("ul>li").click没有把 新增节点也绑定事件,因此如果要让新增节点也要绑定事件,要用到事件委托...什么是事件委托: 可以找一个入口函数执行之前就有的元素来监听动态添加某些事件 应用了冒泡原理*/ $("ul

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

阿里前端一面必会面试题(附答案)

因为事件冒泡过程中会上传到父节点,父节点可以通过事件对象获取到目标节点,因此可以把子节点监听函数定义父节点,由父节点监听函数统一处理多个子元素事件,这种方式称为事件委托事件代理)。...因此,比较好方法就是把这个点击事件绑定到他父层,也就是 ul ,然后执行事件再去匹配判断目标元素,所以事件委托可以减少大量内存消耗,节约效率。...动态绑定事件 给上述例子中每个列表项都绑定事件很多时候,需要通过 AJAX 或者用户操作动态增加或者去除列表项元素,那么每一次改变时候都需要重新给新增元素绑定事件,给即将删去元素解绑事件...;如果用了事件委托就没有这种麻烦了,因为事件是绑定在父层,和目标元素增减是没有关系,执行到目标元素真正响应执行事件函数过程中去匹配,所以使用事件动态绑定事件情况下是可以减少很多重复工作...: 只必须地方,使用事件委托,比如:ajax局部刷新区域 尽量减少绑定层级,不在body元素,进行绑定 减少绑定次数,如果可以,那么把多个事件绑定,合并到一次事件委托中去,由这个事件委托回调

33830

HTML页面基本结构和加载过程

元素是页面的根元素,它描述完整网页; head元素包含了我们想包含在 HTML 页面中,但不希望显示在网页里内容; body元素包含了我们访问页面所有显示页面上内容,是用户最终能看到内容;...浏览器渲染页面的过程需要解析 HTML、CSS 以得到 DOM 树和 CSS 规则树,它们结合后才生成最终渲染树并渲染。...一般来说,我们使用 JavaScript 来操作 DOM 接口,从而实现页面的动态变化,以及用户交互操作。 开发过程中,常常用对象方式来描述某一事物,用特定结构集合来描述某些事物集合。...四、事件委托 我们知道,浏览器中各个元素从页面中接收事件顺序包括事件捕获阶段、目标阶段、事件冒泡阶段。其中,基于事件冒泡机制,我们可以实现将子元素事件委托给父级元素来进行处理,这便是事件委托。...如果我们document.body被绑定了事件,这时候整个页面都会被标记; 即使我们页面不关心某些部分用户交互,合成器线程也必须与主线程进行通信,并在每次事件发生进行等待。

1.5K40

jQuery

//(2)easing:(Optional)用来指定切换效果,默认是“swing”,可用参数“linear”。 //(3)fn:回调函数,动画完成执行函数,每个元素执行一次。...//(3)fn:回调函数,动画完成执行函数,每个元素执行一次 hide([speed,[easing],[fn]]);//中括号表示可以省略此参数,无动画直接显示 3.切换显示和隐藏 toggle...(2)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。 (3)fn: 回调函数,动画完成执行函数,每个元素执行一次。...}) 例如: $(“div”).click(function(){ //事件处理程序 }) ---- jQuery 事件处理 1.事件处理 on() 绑定事件匹配元素绑定一个或多个事件事件处理函数...; }); 注意:事件委派现在大多采用⬆️这种写法: 优势在于当动态创建元素,可以动态自动为其绑定事件 例如:ol里添加li并动态绑定事件 $("ol").on("click", "li", function

21K50

jQuery

getElementById()查询出来标签对象 Dom 对象 通过 getElementName()查询出来标签对象 Dom 对象 通过 getElementByTagName()查询出来标签对象是...tagName/* 根据匹配标签元素/所有元素。 .class 根据给定匹配元素。 selector1,selector2,selector3 将每一个选择器匹配到元素合并后一起返回。...: 将子元素事件委托给父辈元素处理 事件监听绑定在父元素, 但事件发生在子元素 事件会冒泡到父元素 但最终调用事件回调函数是子元素: event.target 好处: 新增元素没有事件监听...减少监听数量(n==>1) jQuery 事件委托 API 设置事件委托: $(parentSelector).delegate(childrenSelector, eventName, callback... 删除ul事件委托监听器 // jQuery // 设置事件委托 $("ul").delegate("li", "click

10.8K20

JavaScript高级程序设计-性能整理(二)

自然地,JavaScript 与 CSS 交互就增多了,包括动态修改名,以及根据给定一个或一组名查询元素,等等。...为此,最好通过循环先构建一个独立字符 串,最后再一次性把生成字符串赋值给 innerHTML,比如: let itemsHtml = ""; for (let value of values){...17.5.1 事件委托 只要可行,就应该考虑只给 document 添加一个事件处理程序,通过它处理页面中所有某种类型事件。相对于之前技术,事件委托具有如下优点。...除了通过事件委托来限制这种连接之外,还应该及时删除不用事件处理程序。很多 Web 应用性能不佳都是由于无用事件处理程序长驻内存导致。 导致这个问题原因主要有两个。...但也要注意,事件处理程序中删除按钮会阻止事件冒泡。只有事件目标仍然存在于文档中事件才会冒泡。 注意 事件委托也有助于解决这种问题。

79230

前端之jQuery

样式 addClass();// 添加指定CSS名。 removeClass();// 移除指定CSS名。...hasClass();// 判断样式存不存在返回是布尔值 toggleClass();// 切换CSS名,如果有就移除,如果没有就添加。...如果直接动态绑定一个事件是无法触发该事件执行,为了解决这个问题,我们采用事件委托方法。...目的: 我们已经创建好事件如果想被动态创建标签使用就需要用到事件委托,比如已经创建好了按钮点击事件如果我们要将这个事件绑定给动态创建一个按钮就通过事件委托,将事件绑定给按钮父标签,这样当子标签....data(key, value): 描述:匹配元素存储任意相关数据。这里存储值是不可见

4.9K21

2023金九银十必看前端面试题!2w字精品!

解释JavaScript中事件委托(Event Delegation)是什么,并提供一个使用事件委托示例。 答案:事件委托是指将事件处理程序绑定到父元素,而不是直接绑定到每个子元素。...当事件触发事件会冒泡到父元素,然后通过判断事件目标来执行相应处理逻辑。这样可以减少事件处理程序数量,提高性能。...答案:事件冒泡是指当一个事件DOM树中触发,它会从最内层元素开始向外传播至最外层元素事件捕获是指当一个事件DOM树中触发,它会从最外层元素开始向内传播至最内层元素。 12....v-on:用于监听DOM事件并执行相应方法。 v-model:用于表单元素实现双向数据绑定。...Vue.js中动画系统是如何工作?请提供一个简单动画示例。 答案:Vue.js动画系统通过CSS过渡和动画实现。通过元素添加过渡或动画,可以触发相应过渡效果或动画效果。

37342

高级前端面试题汇总_2023-02-27

因为事件冒泡过程中会上传到父节点,父节点可以通过事件对象获取到目标节点,因此可以把子节点监听函数定义父节点,由父节点监听函数统一处理多个子元素事件,这种方式称为事件委托事件代理)。...因此,比较好方法就是把这个点击事件绑定到他父层,也就是 ul ,然后执行事件再去匹配判断目标元素,所以事件委托可以减少大量内存消耗,节约效率。...动态绑定事件 给上述例子中每个列表项都绑定事件很多时候,需要通过 AJAX 或者用户操作动态增加或者去除列表项元素,那么每一次改变时候都需要重新给新增元素绑定事件,给即将删去元素解绑事件...;如果用了事件委托就没有这种麻烦了,因为事件是绑定在父层,和目标元素增减是没有关系,执行到目标元素真正响应执行事件函数过程中去匹配,所以使用事件动态绑定事件情况下是可以减少很多重复工作...: 只必须地方,使用事件委托,比如:ajax局部刷新区域 尽量减少绑定层级,不在body元素,进行绑定 减少绑定次数,如果可以,那么把多个事件绑定,合并到一次事件委托中去,由这个事件委托回调

1.6K20

jQuery 事件注册、事件处理

​ 因为普通注册事件方法不足,jQuery又创建了多个新事件绑定方法bind() / live() / delegate() / on()等,其中最好用是: on() on() 方法匹配元素绑定一个或多个事件事件处理函数...on() 方法优势3: 动态创建元素,click() 没有办法绑定事件, on() 可以给动态生成元素绑定事件 $(“div").on("click",”p”, function(){...alert("俺可以给动态生成元素绑定事件") }); $("div").append($("我是动态创建p")); 演示代码 </...事件处理 off() 解绑事件 ​ 当某个事件上面的逻辑,特定需求下不需要时候,可以把该事件逻辑移除,这个过程我们称为事件解绑。...() 方法可以移除通过 on() 方法添加事件处理程序。

3.8K20

jQuery

属性名和属性值用冒号隔开, 属性可以不用加引号 $(this).css({ "color":"white","font-size":"20px"}); 一般来说通过style中编写样式,通过添加方式添加样式...3.切换 $("div").toggleClass("current"); 原生js中className会覆盖名,jQuery中指操作指定名,不影响原先名 3.2 jQuery效果...div加定位,否则无效 3.2.5 事件切换 jQuery中有hover()事件,功能类似于csshover hover(function,function) 传入2个参数,第一个参数是鼠标移入是触发函数...('属性名'); //更改 attr('属性名','属性值'); 4.1.3 数据缓存 data() 可以指定元素存取数据,但不会修改DOM元素结构。...()解绑事件 解除全部事件 $('div').off() 解除特定事件 $('div').off('click') 解除事件委托 $('div').off('click','li') 只触发一次事件

8.4K10

【前端面试】 - 观远数据电话面试题

数据结构中对堆栈链理解 以链表形式构建堆栈数据结构,可以实现动态增加节点,无需预先分配内存。 2. js中哪些数据是放在堆中,哪些数据是放在栈中?...Array.of 创建一个包含所有参数数组 Array.from 接受可迭代对象或数组对象,最终返回一个数组 Array.fill 用指定值填充一至多个数组元素 copyWithin方法 4. const...什么是事件代理,怎么判断是哪个节点触发了,target和currentTarget区别 当网页中需要触发事件对象比较多时候,为了避免内存泄漏,我们把事件委托到其父对象,比如li事件委托到ul...隐藏元素几种方法 CSS方法 opacity: 0 通过调整透明度从视觉隐藏元素元素依旧占据位置并对网页布局起作用,也会影响用户交互。...diaplsy: none 隐藏元素,确保元素不可见并且连盒模型也不生成,被隐藏元素不占据任何空间。

1.3K20

前端必会面试题指南_2023-02-27

因为事件冒泡过程中会上传到父节点,父节点可以通过事件对象获取到目标节点,因此可以把子节点监听函数定义父节点,由父节点监听函数统一处理多个子元素事件,这种方式称为事件委托事件代理)。...因此,比较好方法就是把这个点击事件绑定到他父层,也就是 ul ,然后执行事件再去匹配判断目标元素,所以事件委托可以减少大量内存消耗,节约效率。...动态绑定事件 给上述例子中每个列表项都绑定事件很多时候,需要通过 AJAX 或者用户操作动态增加或者去除列表项元素,那么每一次改变时候都需要重新给新增元素绑定事件,给即将删去元素解绑事件...;如果用了事件委托就没有这种麻烦了,因为事件是绑定在父层,和目标元素增减是没有关系,执行到目标元素真正响应执行事件函数过程中去匹配,所以使用事件动态绑定事件情况下是可以减少很多重复工作...#list 元素之下具体被点击元素,然后通过判断 target 一些属性(比如:nodeName,id 等等)可以更精确地匹配到某一 #list li 元素之上; (3)局限性 当然,事件委托也是有局限

27720

前端面试如何回答,这些题目或许可以给你一些提示

(4)减少回流与重绘:操作DOM,尽量低层级DOM节点进行操作不要使用table布局, 一个小改动可能会使整个table进行重新布局使用CSS表达式不要频繁操作元素样式,对于静态页面,可以修改名...因为事件冒泡过程中会上传到父节点,父节点可以通过事件对象获取到目标节点,因此可以把子节点监听函数定义父节点,由父节点监听函数统一处理多个子元素事件,这种方式称为事件委托事件代理)。...因此,比较好方法就是把这个点击事件绑定到他父层,也就是 ul ,然后执行事件再去匹配判断目标元素,所以事件委托可以减少大量内存消耗,节约效率。...动态绑定事件给上述例子中每个列表项都绑定事件很多时候,需要通过 AJAX 或者用户操作动态增加或者去除列表项元素,那么每一次改变时候都需要重新给新增元素绑定事件,给即将删去元素解绑事件;...#list 元素之下具体被点击元素,然后通过判断 target 一些属性(比如:nodeName,id 等等)可以更精确地匹配到某一 #list li 元素之上;(3)局限性当然,事件委托也是有局限

58320

前端性能优化

: 代码优化 1、v-if 和 v-show 区分使用场景 实现方式: v-if是动态向DOM树内添加或者删除DOM元素,v-show是通过设置DOM元素display样式属性控制显隐。...编译过程: v-if切换有一个局部编译卸载过程,切换过程中合适地销毁和重建内部事件监听和子组件,v-show只是简单基于CSS切换。...10、使用事件委托 事件委托利用了事件冒泡,只指定一个事件处理程序,就可以管理某一所有事件。所有用到按钮事件(多数鼠标事件和键盘事件)都适合采用事件委托技术, 使用事件委托可以节省内存。...查找结果 1 中元素是否有名为 text 元素 查找结果 2 中元素是否有 id 为 block 元素 (2)....根据文件内容生成文件名,结合 import 动态引入组件实现按需加载 通过配置 output filename 属性可以实现这个需求。

1.2K20

JavaScript 事件委托 以及jQuery对事件委托支持

另外,如果在实际应用中,很有可能同过js div1下动态生成p 元素,这时候,我们相应地还要添加事件处理函数,像这种动态添加动作很有可能分散我们 应用很多个角落,这样动态添加处理函数将是一个非常蛋疼事儿...解决方法: 利用 事件冒泡传递机制,将本来本元素要完成事件处理逻辑,委托给 父节点,父节点根据触发事件节点信息,执行对应事件处理逻辑。...如果我们js中动态地给box1 增加子元素P,相应处理函数也会对其有效。...算法: 将事件处理函数绑定到容器事件处理函数内获取 event.target, 根据不同event.target作相应处理 应用场景: 需要为子元素用一个事件处理函数 处理相同动作; 简化不同动作间结构...第二,理论委托会导致浏览器额外加载,因为容器内任意一个地方事件发生,都会运行事件处理函数,所以多数情况下事件处理函数都是空循环(没有意义动作),通常不是什么大不了事儿。

79660

最近开发一个较复杂单页应用些许感想

这是我做第一次做单页应用,也是第一次正式项目里用Angular,所以遇到了不少坑,记录如下 页面切换(非页面刷新,只是hash发生变化,ng-view里内容根据路由进行更新),用jQuery抓取新页面的元素抓不到...或者如果只是给一些元素绑定事件,可以用事件委托。 多次进入同一个页面,导致同一个js被多次执行导致问题。因为页面没有刷新,事件委托元素事件会被绑定多次。...解决方案是,绑事件前,先接触绑定事件。 Bootstrap 3弹出框 动态生成元素有时会出现幽灵情况:元素生成好之后元素,用jQuery也抓取不到那元素。。。...其双向绑定,不依赖于页面结构 尽量不要用事件委托,如果用,要在绑定事件前解除绑定来避免多绑。当然也有可能导致错绑其他页面的元素。...因为单页应用页面跳转并没有刷新页面 前后端分离可采用,前后端均用相同模板引擎。前端开发,请求自己写模拟接口,而非后端真正接口。模拟接口和后端接口格式是一样

42220
领券