2024年最新系统带你学习 WebAPIs 第三讲,2024年最新关于前端开发的面试经验总结

总结

我在成长过程中也是一路摸爬滚打,没有任何人的指点,所以走的很艰难。例如在大三的时候,如果有个学长可以阶段性的指点一二,如果有已经工作的师兄可以告诉我工作上需要什么,我应该前面的三年可以缩短一半;后来去面试bat,失败了有5、6次,每次也不知道具体是什么原因,都是靠面试回忆去猜测可能是哪方面的问题,回来学习和完善,当你真正去招人的时候,你就会知道面试记录是多么重要,面试官可以从面试记录里看到你的成长,总是去面试,总是没有成长,就会被定义为缺乏潜力。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

image
image

tr.appendChild(td);

}

// 4. 删除操作 开始

var as = document.querySelectorAll(‘a’);

for (var i = 0; i < as.length; i++) {

as[i].onclick = function() {

// 点击a 删除 当前a 所在的行(链接的爸爸的爸爸) node.removeChild(child)

tbody.removeChild(this.parentNode.parentNode)

}

}

1.1.5 创建元素的三种方式

在这里插入图片描述

1.1.6 innerTHML和createElement效率对比

innerHTML字符串拼接方式(效率低)

createElement方式(效率一般)

innerHTML数组方式(效率高)

1.2. DOM的核心总结


在这里插入图片描述

在这里插入图片描述

关于dom操作,我们主要针对于元素的操作。主要有创建、增、删、改、查、属性操作、事件操作。

1.2.1. 创建

在这里插入图片描述

1.2.2. 增加

在这里插入图片描述

1.2.3. 删

在这里插入图片描述

1.2.4. 改

在这里插入图片描述

1.2.5. 查

在这里插入图片描述

1.2.6. 属性操作

在这里插入图片描述

1.3. 事件高级


1.3.1. 注册事件(2种方式)

在这里插入图片描述

案例演示:

事件

1.3.2 事件监听

addEventListener()事件监听(IE9以后支持)

在这里插入图片描述

eventTarget.addEventListener()方法将指定的监听器注册到 eventTarget(目标对象)上,当该对象触发指定的事件时,就会执行事件处理函数。

在这里插入图片描述

attacheEvent()事件监听(IE678支持)

在这里插入图片描述

​ eventTarget.attachEvent()方法将指定的监听器注册到 eventTarget(目标对象) 上,当该对象触发指定的事件时,指定的回调函数就会被执行。

在这里插入图片描述

事件监听兼容性解决方案

封装一个函数,函数中判断浏览器的类型:

在这里插入图片描述

1.3.3. 删除事件(解绑事件)

在这里插入图片描述

1
2
3

**删除事件兼容性解决方案 **

在这里插入图片描述

1.3.4. DOM事件流

html中的标签都是相互嵌套的,我们可以将元素想象成一个盒子装一个盒子,document是最外面的大盒子。

当你单击一个div时,同时你也单击了div的父元素,甚至整个页面。

那么是先执行父元素的单击事件,还是先执行div的单击事件 ???

在这里插入图片描述

比如:我们给页面中的一个div注册了单击事件,当你单击了div时,也就单击了body,单击了html,单击了document。

在这里插入图片描述

在这里插入图片描述

当时的2大浏览器霸主谁也不服谁!

IE 提出从目标元素开始,然后一层一层向外接收事件并响应,也就是冒泡型事件流。

Netscape(网景公司)提出从最外层开始,然后一层一层向内接收事件并响应,也就是捕获型事件流。

江湖纷争,武林盟主也脑壳疼!!!

最终,w3c 采用折中的方式,平息了战火,制定了统一的标准 —–— 先捕获再冒泡。

现代浏览器都遵循了此标准,所以当事件发生时,会经历3个阶段。

网景虽死,精神永存!

DOM 事件流会经历3个阶段:

  1. 捕获阶段

  2. 当前目标阶段

  3. 冒泡阶段

​ 我们向水里面扔一块石头,首先它会有一个下降的过程,这个过程就可以理解为从最顶层向事件发生的最具体元素(目标点)的捕获过程;之后会产生泡泡,会在最低点( 最具体元素)之后漂浮到水面上,这个过程相当于事件冒泡。

在这里插入图片描述

在这里插入图片描述

事件冒泡

son盒子

事件捕获

son盒子

1.3.5. 事件对象

什么是事件对象

事件发生后,跟事件相关的一系列信息数据的集合都放到这个对象里面,这个对象就是事件对象。

比如:

  1. 谁绑定了这个事件。

  2. 鼠标触发事件的话,会得到鼠标的相关信息,如鼠标位置。

  3. 键盘触发事件的话,会得到键盘的相关信息,如按了哪个键。

事件对象的使用

事件触发发生时就会产生事件对象,并且系统会以实参的形式传给事件处理函数。

所以,在事件处理函数中声明1个形参用来接收事件对象。

在这里插入图片描述

事件对象的兼容性处理

事件对象本身的获取存在兼容问题:

  1. 标准浏览器中是浏览器给方法传递的参数,只需要定义形参 e 就可以获取到。

  2. 在 IE6~8 中,浏览器不会给方法传递参数,如果需要的话,需要到 window.event 中获取查找。

在这里插入图片描述

只要“||”前面为false, 不管“||”后面是true 还是 false,都返回 “||” 后面的值。

只要“||”前面为true, 不管“||”后面是true 还是 false,都返回 “||” 前面的值。

123
事件对象的属性和方法

在这里插入图片描述

代码示例

btn.οnclick=function(e){

e=e || window.event

console.log(e.target || e.srcElement.outerHTML)

}

e.target 和 this 的区别
  • this 是事件绑定的元素(绑定这个事件处理函数的元素) 。

  • e.target 是事件触发的元素。

常情况下terget 和 this是一致的,

但有一种情况不同,那就是在事件冒泡时(父子元素有相同事件,单击子元素,父元素的事件处理函数也会被触发执行),

这时候this指向的是父元素,因为它是绑定事件的元素对象,

而target指向的是子元素,因为他是触发事件的那个具体元素对象。

123

事件冒泡下的e.target和this

    • abc
    • abc
    • abc
    • 1.3.6 阻止默认行为

      html中一些标签有默认行为,例如a标签被单击后,默认会进行页面跳转。

      百度

      1.3.7 阻止事件冒泡

      性能优化

      1.webpack打包文件体积过大?(最终打包为一个js文件)

      2.如何优化webpack构建的性能

      3.移动端的性能优化

      4.Vue的SPA 如何优化加载速度

      5.移动端300ms延迟

      6.页面的重构

      所有的知识点都有详细的解答,我整理成了280页PDF《前端校招面试真题精编解析》。

      开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

      ult(); // dom 标准写法

      });

      // 3. 传统的注册方式

      document.querySelector(‘a’).οnclick=function(e){

      e=e||window.event

      if(e.preventDefault){

      e.preventDefault()

      }

      e.returnValue=false

      // 或者上面两种方式都不使用,直接使用下面代码也可以,没有兼容问题

      // 说说这种方法有什么问题

      // return false

      }

      1.3.7 阻止事件冒泡

      性能优化

      1.webpack打包文件体积过大?(最终打包为一个js文件)

      2.如何优化webpack构建的性能

      3.移动端的性能优化

      4.Vue的SPA 如何优化加载速度

      5.移动端300ms延迟

      6.页面的重构

      所有的知识点都有详细的解答,我整理成了280页PDF《前端校招面试真题精编解析》。

      开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

    • 4
      点赞
    • 6
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值