前端相关知识点总结

**

1.sessionstorage和localstorage的联系和区别

**
相同点:两者都是用于本地存储
不同点:sessionstorage
1.生命周期为关闭浏览器窗口
2.在同一个窗口(页面)下数据可以共享
3.以键值对形式存储使用
localstorage
1.生命周期永久有效,除非手动清除,否则关闭页面也会存在
2.可以在多窗口(页面)共享数据(同一浏览器可以共享)
3.以键值对形式存储使用
存储数据:localstorage.setItem(key,value)
获取数据:localstorage.getItem(key)
删除数据:localstorage.removeItem(key)
删除所有数据:sessionstorage.clear()
sessionstorage同上

2.new关键字在执行后会做四件事:

1.在内存中创建一个新的空对象
2.让this指向这个新对象
3.执行构造函数里的代码,给这个空对象添加属性和方法
4.返回这个新对象(所有构造函数里不需要return语句)

3.for…in…和for…of的区别

1.for…in 遍历键名(key),for…of遍历键值(value)
2.for…in会遍历原型链上的属性和方法,for…of不会遍历原型链

4.事件委托

事件委托是利用了事件冒泡的原理,将事件添加到父元素或者祖先元素身上,从而达到执行效果。
优点:1.提高性能:大量减少内存占用,减少事件注册。
2.动态绑定:新增元素实现动态绑定事件

5.js的基本数据类型

五中可包含值的类型:字符串(string)数字(number)布尔值(boolen)对象(object)函数(function)
三种对象类型: 对象(Object) 日期(Date)数组(Array)
两种不能包含值的类型:null undefined

6.let,const,var的区别。const定义的对象是否可以修改

var 声明变量 可以进行变量提升
let 声明变量 不能进行变量提升 作用域比var更小 形成块级作用域
const 声明常量 定义的变量不能修改,但对象可以修改

7.地址(this)指向问题

this指向当前函数的主人
全局函数:this指向window
对象:this指向当前对象
特殊的需要上下文判断

8.实现一个垂直水平居中

1.margin:0 auto;
2.用position实现
3.用flex布局实现
4.用表格实现

9.dispaly:none和visibility:hidden的区别

1.占据空间与否:
display:none:该元素不占据任何空间,即该对象在页面上彻底消失,跟v-if类似,通俗来说就是看不见也摸不到。
visibility:hidden:使对象在网页上不可见,跟v-show类似,但该对象在网页上所占的空间没有改变,通俗来说就是看不见但摸得到。
2.是否继承
display:none,display不是继承属性,元素及其子元素都会消失。
visibility:hidden,visibility是继承属性,若子元素使用了visibility:visible,则不继承,这个子孙元素又会显现出来。
3.是否被读取器读取
读屏器不会读取display:none的元素内容,而会读取visibility:hidden的元素内容。
4.是否渲染
display:none:会触发reflow(回流),进行渲染。
visibility:hidden:只会触发repaint(重绘),因为没有发现位置变化,不进行渲染。

10.闭包是什么以及使用闭包的好处

1.函数嵌套函数,即有权访问另一个函数作用域中的局部变量
2.内部函数访问外部函数的形参和变量
3.被引用的形参和变量不会被【垃圾回收机制所回收】
好处:1.延伸变量的作用范围
2.避免全局变量污染(尽量不使用全局变量)
3.可以声明私有变量

11.深拷贝和浅拷贝

浅拷贝只是拷贝一层,更深层次对象级别的只拷贝引用
深拷贝拷贝多层,每一级别的数据都会拷贝
Object.assign(target,sources) ES6新增方法可以浅拷贝

11.关于定时器的实现

1.我们有2组方法:
(1)setTimeout()和clearTimeout();
(2)setInterval()和clearInterval();
2、setTimeout()方法内的代码只会执行一次,而setInterval()方法内的代码会重复性执行。

12.vue2和vue3双向数据绑定原理

vue2 的双向数据绑定是利用ES5 的一个 API Object.defineProperty()对数据进行劫持 结合 发布订阅模式的方式来实现的。
vue3 中使用了 es6 的 ProxyAPI 对数据代理。

13.js中的回流和重绘

回流(reflow):也叫做重排。当元素的尺寸或者位置发生了变化,就需要重新计算渲染树,这就是回流,比如元素的宽高、位置,浏览器会重新渲染页面,称为回流,又叫重排(layout)。
重绘(repaint):当元素样式的改变不影响页面布局时,比如元素的颜色,浏览器将对元素进行的更新,称之为重绘。
关系:回流必定会触发重绘,重绘不一定会触发回流。重绘的开销较小,回流的代价较高
触发页面回流的属性:
1、盒子模型相关属性的改变:
width、height、padding、border、margin、display、border-width、min-height
2、定位属性及浮动元素位置的心迹:
top、right、bottom、left、position、float、clear
3、节点内部文字结构,行内属性的改变
font-size、line-height
4、读写元素位置属性时(offsettop等),会触发回流
但当你获取元素位置信息的时候,队列中可能有会影响元素位置的操作,
即使没有,浏 览器也会强制清空队列,触发回流与重绘来确保返回正确的值
5、DOM 元素移动、删除、增加
触发页面重绘的属性
color、background-color、visibility、opacity、
border-style、border-radius、
box-shadow、outline

14.从输入URL请求网页到渲染的过程

1、输入网址
2、发送到DNS 服务器 ,并确定域名对应的web服务器的 ip 地址
3、与浏览器建立tcp 连接(三次握手,四次挥手)
4、浏览器向web服务器发送http 请求
5、web服务器响应请求,并返回指定的url 的数据(或者错误信息)或者重定向的新url地址
6、浏览器下载web服务器返回的数据及解析 html 文件
7、生成dom 树,解析css 和 js 渲染页面直至 显示完成

15.DNS解析过程

1、客户机发出查询请求,在本地计算机缓存查找,若没有找到,就会将请求发送给dns服务器
2、本地dns服务器会在自己的区域里面查找,找到即根据此记录进行解析,若没有找到,就会在本地的缓存里面查找
3、本地服务器没有找到客户机查询的信息,就会将此请求发送到根域名dns服务器
4、根域名服务器解析客户机请求的根域部分,它把包含的下一级的dns服务器的地址返回到客户机的dns服务器地址
5、客户机的dns服务器根据返回的信息接着访问下一级的dns服务器
6、这样递归的方法一级一级接近查询的目标,最后在有目标域名的服务器上面得到相应的IP信息
7、客户机的本地的dns服务器会将查询结果返回给我们的客户机
8、客户机根据得到的ip信息访问目标主机,完成解析过程

16.防抖和节流

防抖:所谓防抖,就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。
节流:所谓节流,就是指连续触发事件但是在 n 秒中只执行一次函数。两种方式可以实现,分别是时间戳版和定时器版。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值