前端面试题必会(重点重点重点)高质量

一、以自己理解讲解js堆和栈,以及深拷贝怎么解决?

(堆)是用来存放引用数据类型,例如对象,数组,函数

(栈)是用来存放基本数据类型,变量和引用数据类型的地址值 ; 体积小,数据经常变化

深拷贝的解决方案 :

1.使用js插件lodash的cloneDeep方法

2.使用递归实现深拷贝

3.如果数据中没有函数,undefined 可以使用json.stringify+json.parse实现深拷贝

二、什么是同源

http://www.qq.com:8080/a/b/c/test.html

协议 + 域名/IP地址 + 端口 + 路径 + 文件名(含后缀)

答: 同源就是两个页面有相同的协议 域名 端口 就属于同源 其中只要一个不同就不同源

三、什么是set数据结构?

Set数据结构,类似数组。所有的数据都是唯一的,没有重复的值。它本身是一个构造函数

let set6 = [...new Set([1, 2, 2, 3, 4, 3, 5])] 去重 是伪数组

四、什么是原型链?

答:avaScript是面向对象的,每个实例对象都有一个__proto__属性,该属性指向它的原型对象,

这个实例对象的构造函数有一个原型属性prototype,与实例的proto属性指向同一个对象。

当一个对象在查找一个属性的时候,自身没有就会根据__proto__向它的原型进行查找,

如果都没有,则向它的原型的原型继续查找,直到查到Object.prototype.proto_为null,这样也就形成了原型链。

五、函数的防抖和节流。

防抖函数:将多次触发变成最后一次触发。通俗的理解就是电梯里每进一个人电梯门关闭的时间重新计算

节流函数:将多次执行变成每隔一个时间节点去执行的函数。通俗的理解就是电梯无论是否进人,开关时间都是固定的

六、.什么是重绘 什么是回流

重绘:改变元素颜色 改变元素背景色时,说白了就是元素样式改变不影响布局时

回流(也称重排):页面初次渲染,浏览器窗口大小改变,元素尺寸 位置 内容发生改变,dom删除/添加等等 说白了就是元素的尺寸,结构发生改变时就是回流

七、什么是事件委托?

让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行

八、ES6的新特性有哪些?

1、const/let

2、箭头函数

3、Promise(Promise有三种状态,pending,resolved,rejected,状态修改是不可逆的, then、catch、finally、all、race方法)

4、模板字符串

5、数据解构

6、对象字面量

7、展开运算符

8、rest语法(剩余参数)

9、默认参数

10、class类

九、为什么构造函数的方法要放在prototype里边为什么不直接用this.的方式声明?

答:因为prototype占用一个存储空间,实例通过proto指针指向prototype,可以减少内存占用减少不必要的开销

十、JS作用域和变量提升?

作用域:变量起作用的范围 变量访问会层层往上级作用域访问直到window,称为作用域链

变量提升:JS编译阶段会将文件中所有var,function声明的变量提升到当前作用域最顶端

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值