2024年前端最新前端入门篇(四十一)JS基础8动态修改网页内容(DOM操作),面试突击版

JavaScript

  • js的基本类型有哪些?引用类型有哪些?null和undefined的区别。

  • 如何判断一个变量是Array类型?如何判断一个变量是Number类型?(都不止一种)

  • Object是引用类型嘛?引用类型和基本类型有什么区别?哪个是存在堆哪一个是存在栈上面的?

  • JS常见的dom操作api

  • 解释一下事件冒泡和事件捕获

  • 事件委托(手写例子),事件冒泡和捕获,如何阻止冒泡?如何组织默认事件?

  • 对闭包的理解?什么时候构成闭包?闭包的实现方法?闭包的优缺点?

  • this有哪些使用场景?跟C,Java中的this有什么区别?如何改变this的值?

  • call,apply,bind

  • 显示原型和隐式原型,手绘原型链,原型链是什么?为什么要有原型链

  • 创建对象的多种方式

  • 实现继承的多种方式和优缺点

  • new 一个对象具体做了什么

  • 手写Ajax,XMLHttpRequest

  • 变量提升

  • 举例说明一个匿名函数的典型用例

  • 指出JS的宿主对象和原生对象的区别,为什么扩展JS内置对象不是好的做法?有哪些内置对象和内置函数?

  • attribute和property的区别

  • document load和document DOMContentLoaded两个事件的区别

  • JS代码调试

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

div1

js文件:

var div1 = document.getElementById(‘div1’);

var p_txt = div1.getElementsByClassName(‘txt’);

由找到的已知节点或document节点向下层寻找,目的是找到某节点,如果已经用id找到了p2,就不能再从p2找txt,因为不是下层

查找结果只有一个:p#p1.txt.txt1

创建节点,添加到DOM树


html文件:

js文件:

//添加节点

var div1 = document.getElementById(‘div1’);//获取节点

var p = document.createElement(‘p’);//创建p标签

var ptxt = document.createTextNode(‘p1’);//创建文本节点

p.appendChild(ptxt);//文本节点关联到标签节点

div1.appendChild§;//添加标签节点至DOM树

结果:

在这里插入图片描述

删除节点


先在html文件中添加一个div2:

DOM操作
div2

js文件:

//删除节点

var div2 = document.getElementById(‘div2’);//获取div2

//方法一:通过父节点div1删除子节点div2

div1.removeChild(div2);

//方法二:通过树的关系,找到div2的父节点,再删除自己,不用直接查找父节点

div2.parentNode.removeChild(div2);

操作节点的属性、内容


1.对于html定义好的属性:

可以使用对象.属性来获取;

如果需要修改class名,要用对象.className来修改,因为class也是js的关键字(类);

对象.style.属性可以针对css样式进行修改

html文件:

js文件:

var img1 = document.getElementById(‘img1’);

img1.src = ‘img.png’ //修改图片

img1.style.width = ‘50px’;//img1.style针对css样式进行修改

结果:换了张图片,并调整了宽度

2.对于自定义的属性:

html文件:

js文件:

//获取属性

var div1 = document.getElementById(‘div1’);

var dat = div1.getAttribute(‘dat’);//获取自定义属性

//设置自定义属性

img1.setAttribute(‘dat’,‘11’);

//删除自定义属性

// img1.removeAttribute(‘dat’);

在这里插入图片描述

3.修改标签内容

innerHtml()既修改文本,也能支持html格式

textContent()纯文本

总结

大厂面试问深度,小厂面试问广度,如果有同学想进大厂深造一定要有一个方向精通的惊艳到面试官,还要平时遇到问题后思考一下问题的本质,找方法解决是一个方面,看到问题本质是另一个方面。还有大家一定要有目标,我在很久之前就想着以后一定要去大厂,然后默默努力,每天看一些大佬们的文章,总是觉得只有再学深入一点才有机会,所以才有恒心一直学下去。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值