DOM&BOM-w3school(2024,hashmap的实现原理面试怎么回答

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
img

正文

访问 HTML 元素最常用的方法是使用元素的 id。

在上面的例子中,getElementById 方法使用 id=“demo” 来查找元素。

3. innerHTML 属性

获取元素内容最简单的方法是使用 innerHTML 属性。

innerHTML 属性可用于获取或替换 HTML 元素的内容。

innerHTML 属性可用于获取或改变任何 HTML 元素,包括 <html> 和 <body>。

在这里插入图片描述

(三)DOM文档、元素

1.HTML DOM Document 对象

文档对象代表您的网页。

如果您希望访问 HTML 页面中的任何元素,那么您总是从访问 document 对象开始。

2. 查找 HTML 元素

在这里插入图片描述

(1)通过 id 查找 HTML 元素

DOM 中查找 HTML 元素最简单的方法是,使用元素的 id。

var myElement = document.getElementById(“intro”);

如果元素被找到,此方法会以对象返回该元素(在 myElement 中)。

如果未找到元素,myElement 将包含 null。

(2)通过标签名查找 HTML 元素

查找 id=“main” 的元素,然后查找 “main” 中所有

元素,返回对象数组

var x = document.getElementById(“main”);

var y = x.getElementsByTagName(“p”);

(3)通过类名查找 HTML 元素

如果您需要找到拥有相同类名的所有 HTML 元素,请使用 getElementsByClassName()

返回包含 class=“intro” 的所有元素的列表,返回对象数组

var x = document.getElementsByClassName(“intro”);

(4)通过 CSS 选择器查找 HTML 元素

如果您需要查找匹配指定 CSS 选择器(id、类名、类型、属性、属性值等等)的所有 HTML 元素,请使用 querySelectorAll() 方法。

返回 class=“intro” 的所有 <p> 元素列表

var x = document.querySelectorAll(“p.intro”);

(5)通过 HTML 对象选择器查找 HTML 对象

本例查找 id=“frm1” 的 form 元素,在 forms 集合中,然后显示所有元素值

var x = document.forms[“frm1”];

var text = “”;

var i;

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

text += x.elements[i].value + “
”;

}

document.getElementById(“demo”).innerHTML = text;

以下 HTML 对象(和对象集合)也是可访问的:

• document.anchors

• document.body

• document.documentElement

• document.embeds

• document.forms

• document.head

• document.images

• document.links

• document.scripts

• document.title

3.改变 HTML 元素

在这里插入图片描述

(1)改变 HTML 输出流

document.write() 可用于直接写入 HTML 输出流:

千万不要在文档加载后使用 document.write()。这么做会覆盖文档。

(2)改变 HTML 内容

修改 HTML 文档内容最简单的方法是,使用 innerHTML 属性。

document.getElementById(id).innerHTML = new text

(3)改变属性的值

document.getElementById(id).attribute = new value

例如

document.getElementById(“myImage”).src = “landscape.jpg”;

(4)改变元素css

需更改 HTML 元素的样式,请使用此语法:

document.getElementById(id).style.property = new style

例如

document.getElementById(‘p1’).style.visibility=“hidden”;

更多style对象见HTML DOM Style 对象参考手册。https://www.w3school.com.cn/jsref/dom_obj_style.asp

4. 添加和删除元素

在这里插入图片描述

5. 添加事件处理程序

在这里插入图片描述

6. 查找 HTML 对象

在这里插入图片描述

在这里插入图片描述

(三)DOM动画

1.步骤:

(1)基础页面

(2)创建动画容器:所有动画都应该与容器元素关联

(3)为元素添加样式

应该通过 style = "position: relative" 创建容器元素。(相对定位)

应该通过 style = "position: absolute" 创建动画元素。(绝对定位)

·static(静态定位):默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。

position解释:

·fixed(固定定位):生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。可通过z-index进行层次分级。

·relative(相对定位):生成相对定位的元素(相对于他原来应该在的位置),通过top,bottom,left,right的设置相对于其正常(原先本身)位置进行定位。可通过z-index进行层次分级。

·absolute(绝对定位):生成绝对定位的元素(会脱离文档流),相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。可通过z-index进行层次分级。

(4)使用 JavaScript 创建动画

我的第一个 JavaScript 动画

红色块从左上角移动到右下角

(四)DOM事件和监听

1.JavaScript 能够在事件发生时执行,比如当用户点击某个 HTML 元素时。

HTML 事件的例子:

• 当用户点击鼠标时

• 当网页加载后

• 当图像加载后

• 当鼠标移至元素上时

• 当输入字段被改变时

• 当 HTML 表单被提交时

• 当用户敲击按键时

在本例中,从事件处理程序调用函数,通过this传递对象参数:

点击此文本!

2.HTML DOM 允许您使用 JavaScript 向 HTML 元素分配事件

3.当用户进入后及离开页面时,会触发 onload 和 onunload 事件。

onload 事件可用于检测访问者的浏览器类型和浏览器版本,然后基于该信息加载网页的恰当版本。

onload 和 onunload 事件可用于处理 cookie。

4.onchange 事件经常与输入字段验证结合使用。

5. onmouseover 和 onmouseout 事件可用于当用户将鼠标移至 HTML 元素上或移出时触发某个函数

onmousedown, onmouseup 以及 onclick 事件构成了完整的鼠标点击事件。

style=“background-color:#D94A38;width:90px;height:20px;padding:40px;”>

点击鼠标

HTML DOM Event 对象手册

https://www.w3school.com.cn/jsref/dom_obj_event.asp

6. addEventListener() 方法

element.addEventListener(event, function, useCapture);

第一个参数是事件的类型(比如 “click” 或 “mousedown”)。

第二个参数是当事件发生时我们需要调用的函数。

第三个参数是布尔值,指定使用事件冒泡还是事件捕获。此参数是可选的。一般用false使用事件冒泡形式。冒泡指从叶节点向外出发,捕获是从根节点向里触发

注意:请勿对事件使用 “on” 前缀;请使用 “click” 代替 “onclick”。

添加当用户点击按钮时触发的事件监听器:

document.getElementById(“myBtn”).addEventListener(“click”, displayDate);

也可以直接写一个匿名function(参数){代码}代替disolayDate的位置

·addEventListener() 方法为指定元素指定事件处理程序。

·addEventListener() 方法为元素附加事件处理程序而不会覆盖已有的事件处理程序。

·您能够向一个元素添加多个事件处理程序。

element.addEventListener(“click”, myFunction);

element.addEventListener(“click”, mySecondFunction);

·您能够向一个元素添加多个相同类型的事件处理程序,例如两个 “click” 事件。

element.addEventListener(“mouseover”, myFunction);

element.addEventListener(“click”, mySecondFunction);

element.addEventListener(“mouseout”, myThirdFunction);

·您能够向任何 DOM 对象添加事件处理程序而非仅仅 HTML 元素,例如 window 对象。addEventListener() 允许您将事件监听器添加到任何 HTML DOM 对象上,比如 HTML 元素、HTML 对象、window 对象或其他支持事件的对象,比如 xmlHttpRequest 对象。

例如添加当用户调整窗口大小时触发的事件监听器:

window.addEventListener(“resize”, function(){

document.getElementById(“demo”).innerHTML = sometext;

});

·addEventListener() 方法使我们更容易控制事件如何对冒泡作出反应。

在 HTML DOM 中有两种事件传播的方法:冒泡和捕获。

算法刷题

大厂面试还是很注重算法题的,尤其是字节跳动,算法是问的比较多的,关于算法,推荐《LeetCode》和《算法的乐趣》,这两本我也有电子版,字节跳动、阿里、美团等大厂面试题(含答案+解析)、学习笔记、Xmind思维导图均可以分享给大家学习。

写在最后

最后,对所以做Java的朋友提几点建议,也是我的个人心得:

  1. 疯狂编程

  2. 学习效果可视化

  3. 写博客

  4. 阅读优秀代码

  5. 心态调整

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
(“demo”).innerHTML = sometext;

});

·addEventListener() 方法使我们更容易控制事件如何对冒泡作出反应。

在 HTML DOM 中有两种事件传播的方法:冒泡和捕获。

算法刷题

大厂面试还是很注重算法题的,尤其是字节跳动,算法是问的比较多的,关于算法,推荐《LeetCode》和《算法的乐趣》,这两本我也有电子版,字节跳动、阿里、美团等大厂面试题(含答案+解析)、学习笔记、Xmind思维导图均可以分享给大家学习。

写在最后

最后,对所以做Java的朋友提几点建议,也是我的个人心得:

  1. 疯狂编程

  2. 学习效果可视化

  3. 写博客

  4. 阅读优秀代码

  5. 心态调整

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-oH9KUHh0-1713131388998)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值