00前端面试题

以下为本人面试前端工程师(初级)面试题总结,希望对你有所帮助

答案仅供参考

 js

箭头函数与普通函数区别?

 this,arguments,构造函数

如何区分array与function?   

instanceof(),tostring(),typeof(),isArray()

描述浏览器事件循环,宏任务微任务都有哪些

解决js是单线程问题,宏任务:ajax,dom事件回调函数,延时器,定时器

                                  微任务:promise.then(),await后面,queueMicrotask()

Ajax与axios区别

for循环与forEach的区别

数组去重

es6新增

let,const,模板字符串,剩余参数,class,set,map,async,await,promise,symbol,解构语法,函数参数默认值

说下深拷贝,有手写过深拷贝函数吗?

说下promise,谈谈你对promise的理解

解释下什么是原型链

实现继承的几种方式

原型链继承,class的extends

下对闭包的理解,闭包有什么好处,什么坏处,应用到哪里

js中的函数引用了外层作用域的变量,他就是闭包

好处:可以访问函数内部变量,增加变量声明周期

坏处:变量没有及时释放,容易造成内存泄露

应用:防抖,节流,柯里化,模块化

new创建对象步骤

 堆内存开辟空间创建对象,新对象隐式原型指向构造函数显示原型,this绑定新对象,执行代码,返回

什么是内存泄露,那些操作会造成内存泄露

 占用内存没有及时释放,意外的全局变量,闭包,没有及时清理的定时器与回调函数

为什么js是单线程的

 作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题

es6模块化与commonjs区别

1.CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。

2.CommonJS 模块的require()是同步加载模块,ES6 模块的import命令是异步加载,有一个独立的模块依赖的解析阶段。

3.CommonJS是对模块的浅拷⻉,ES6 Module是对模块的引⽤,即ES6 Module只存只读,不能改变其值,具体点就是指针指向不能变,类似const 。

跨域有遇到过吗?怎么解决的

本地存储cookie,localStorage、SessionStorage区别

防抖与节流函数

谈谈异步编程的实现方式

 promise,async,await,回调函数,定时器延时器

call,apply,bind区别,能实现吗

vue

描述vue函数组件

不需要维护生命周期,响应式数据,渲染速度更快,需要将functional属性设为true,无this,访问props中的值要通过props.xxx

详细说下vuex流程

说下vuex的映射函数

 mapState,mapGetter,调用这两个函数返回一个对象,对象里面是一个个函数,一般放到组件计算属性中

mapMutation,mapAction 也是返回对象,对象中是函数,可以直接调用

谈谈vue双向绑定原理

谈谈computed与watch

 计算属性有缓存

vue中nextTick

 将nextTick中代码放到dom更新后执行,可以看成是微队列

vue中set方法作用

 由于vue2响应式是通过object.defineProperty(),劫持get()set()进行响应式,对于新增删除属性监听不到,要通过set,delete

向响应式对象中添加一个 property,并确保这个新 property 同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新 property,因为 Vue 无法探测普通的新增 property (比如 this.myObject.newProperty = 'hi')

谈谈diff算法

虚拟dom优缺点

 优点:虚拟DOM具有批处理和高效的Diff算法,跨平台

缺点:首次渲染大量DOM时,由于多了一层虚拟DOM的计算,会比innerHTML插入慢

v-for中key的作用

谈谈路由导航守卫

单页面应用与多页面应用的区别,优缺点

 单优:局部刷新,前后端分离易维护,容易加动画用户体验好,数据传递容易,对服务器压力小

单缺:开发成本高,不利于seo检索

父组件加载子组件生命周期执行顺序,更新呢

v-for为什么不建议与v-if一起使用?

v-model的修饰符

 lazy,number,trim

页面加载闪烁问题,v-cloak的使用

$route与$router的区别

针对vue项目你做过哪些性能优化

 路由懒加载,webpack分包,使用keep-alive,第三方库按需引入,cdn加载一些资源

vue3相对与vue2有哪些变化

html与css

em ,rem,px,vw,vh区别

div水平垂直居中

display:none与visibility: hidden区别

什么是回流,什么是重绘

块级元素,行内元素

什么是BFC

如何清除浮动

link标签与import标签的区别

盒子模型

css选择器优先级

其他

http,https区别

三次握手干了什么?

说说你知道的状态吗

说说git常用命令

git提交代码,有冲突,怎么解决

网络osi七层模型都是什么,tcp属于那一层?

物理层,数据联络层,网络层,传输层,会话,表示,应用

传输层

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值