web前端面试总结

9 篇文章 0 订阅
3 篇文章 0 订阅

问题1 :自我介绍略单一,公司的业务模式不太清楚(公司是自研?外包?)

问题2:团队开发任务分配问题,你们是怎么分配任务的,人员配置是怎样的?

问题3:项目部分功能略简单(面试官认为),同学们可适当把其他项目里有亮点的功能搬过来说也行

问题4: 人力资源项目中,权限功能的实现细节?

首先是对路由的实现

问题4:人力资源项目中,菜单是怎么做的?

问题4:人力资源项目中,按钮的权限如何控制?

问题5:人力资源项目中,工作流程怎么做的,从发起流程--审批流程---........---流程结束,都有哪些节点?

问题6:人力资源项目中,流程中若有需要回退流程,怎么办?

问题7:介绍一下vue虚拟dom?

它是一个object对象模型 用来模拟真实的dom 作用是高效的渲染页面 减少不必要的dom操作 提高渲染效率

问题8:vue中组件间的传参介绍下?

父传子 :props

子传父: this.$emit

兄弟:event bus

祖传孙:$props 链 、 attrs

孙传祖:$listeners

问题9:子组件如何调用父组件?

问题10:有封装过组件么?怎么编写一个可复用的组件?

问题11:怎么配置嵌套路由?

问题12 :forEach、map、forof的区别?

forEach不能加 break return continue

.map 只能遍历数组,默认有返回值,返回的数组

forof是遍历对象的方法

问题13:this指向函数

问题14:rest常用的请求方式用过哪些?

  • GET:查询;
  • POST:新增;
  • PUT:修改;
  • DELETE:删除;

问题15:vue的生命周期及你个人的理解

beforeCreate :当创建new Vue实例的时候触发,此时组件上的对象都没有创建,没有办法拿到methods, data, computed等上的方法和数据。

created:当Vue实例创建完毕触发,可以拿到methods,data的数据和方法但是挂载阶段还没开始,可以在这里发请求。

beforeMount:在实例被挂载的时候触发,相关的render函数被调用,完成了data初始化,但是还没有挂载到html页面上

mounted:容器初始化完毕后触发,挂在页面,渲染页面,可以在这里发送一些请求

beforeUpdata:更新data中的数据之前触发,可以在这里验证更新数据是否正确

updated:数据更新 完毕后触发 可以拿到更新后的DOM

beforeDestroy:摧毁Vue实例之前触发,在这里可以清除定时器,解绑事件

destroyed:在Vue实例摧毁之后触发,在这里所有的事件监听会被移除,所有子实例也会被摧毁,该钩子在服务器端渲染期间不被调用

补充: 如何销毁Vue实例 this.$destroy()

问题16:delete和vue.delete的区别

delete会删除数组的值,但是它依然会在内存中占位置 而vue.delete会删除数组在内存中的占位

vue.delete可以避免vue检测不到新的property

4.axios是什么,怎么使用,描述它实现登录功能的过程

axios 的是一种异步请求,用法和ajax类似,安装npm install axios --save 即可使用

特性:可以在node.js发送http请求

​ 拦截请求和响应

​ 自动转化JSON格式

5.vue路由的两个传参方式的不用点

get

  1. this.$router.push('/addres?id=12345')
  2. this.$router.push({path: "/addres", query: { id: 12345 }})

post

​ this.$router.push({ name: "addres", params: { id: 12345 }})

6.小程序和h5页面的生命周期的区别

小程序 : 加载=》显示=》加载完成=》页面隐藏=》页面卸载

7windon.onload和jquery里面的$(document).ready(Fuction(){}的区别

windon.onload:必须在所有页面加载完毕执行,不能同时写多个,后面的将会覆盖前面的。 $(document).ready():是页面中所有HTML ,CSS DOM结构加载后就会执行,其他图片可能没有加载完。可以同时编写多个,并且都可以得到执行。

1、forEach、map、forof的区别,常用哪个

2、typeof输出有那些值

所有类型

3、闭包及其应用

1.函数发生嵌套;2.内部函数使用了外部函数的变量

缺点:内存消耗很大,内存泄露。

解决:在退出函数之前,将不使用的局部变量全部删除。

3、数组去重

4、盒子水平垂直居中

5、响应式布局

6、深浅拷贝

7、call和apply

8、async和await

9、localStorage、sessionStorage、cookie

  • 存储大小的不同:
  1. localStorage的大小一般为5M
  2. sessionStorage的大小一般为5M
  3. cookies的大小一般为4K
  • 有效期不同:
  1. localStorage的有效期为永久有效,除非你进行手动删除。
  2. sessionStorage在当前会话下有效,关闭页面或者浏览器时会被清空。
  3. cookies在设置的有效之前有效,当超过有效期便会失效。
  • 与服务器端的通信
  1. localStorage不参与服务器端的通信。
  2. sessionStorage不参与服务器端的通信。
  3. cookies参与服务器端通信,每次都会携带http的头信息中。(如果使用cookie保存过多数据会带来性能问题)

10、this指向

11、vue双向数据绑定

vue双向绑定就是指model层与view层的同步,两者之间任意一个发生变化都会同步更新到另一者。ViewModel之中有一个 Binder,在ViewModel更新Model上的数据时,Binder会自动将更行后的数据传给View,反过来当用户对View进行操作时,Binder会将数据自动更新到Model中

12、computed和watch的区别

computed是计算属性,watch是监听一个值的变化,然后执行对应的回调。

computed中的函数必须要用return返回,watch中的函数不是必须要用return

使用场景:computed----当一个属性受多个属性影响的时候,使用computed-------购物车商品结算。watch----当一条数据影响多条数据的时候,使用watch-------搜索框。

14、$nextTick()

  • nextTick属于微任务,后接一个回调
  • 在修改数据之后使用 $nextTick,则可以在回调中获取更新后的 DOM

15、$set()

如果我们直接为对象增加新属性并赋值、数组的增删,并不会触发页面的更新

16、computed 和 watch的区别,深度监听怎么写

深度监听 加上deep:true 能用箭头函数,箭头函数,this指向全局

17、上线后的项目界面和设计稿不一致,如何去查找问题

18、如何改变element-ui的css样式

/deep/ 或者style表上不写scoped

19、router中query和params的区别

params只能用name来引入路由,query用path/name来引入

params传值一刷新就没了,query传值刷新还存在

取值用法类似分别是this.$route.params.name和this.$route.query.name

params类似于post,query更加类似于我们ajax中get传参

20、Echarts的使用

1.先安装导入

2.一定要注意给宽高(不然图是不会出来的)

3.想要什么类型的,在官网上选好了,粘出来

4.改成你想要的数据和样式

21、首屏加载优化

1.对第三方的js库进行打包分离

2.使用gizp压缩

3.代码层面优化 合理使用v-if和v-show 合理使用watch和computed 使用v-for必须添加key v-for不要和v-if同时使用 定时器的销毁

4.路由懒加载,图片懒加载 img标签只要src存在就会直接发请求,动态加载img标签,精灵图雪碧图

5.请求缓存,短期不变的数据先放在localStorage中

22、微任务和宏任务区别

微任务会先执行

微任务的事件放在微任务队列中,由js引擎线程维护

宏任务的时间放在callback queue中,由事件触发线程维护

23、get、post的区别

get传参方式是通过地址栏URL传递,传输数据的长度

.get请求会被缓存,post不会被缓存,

get请求的记录会留在历史记录中,post请求不会留在历史记录

所有get安全性没有post好

get、post编码方式不同

get后退不会有影响,post后退会重新进行提交

24、项目流程

25、开发遇到的问题

跟后端合作的时候,像接口的api,数据类型不对,会导致很多bug

组件问题,因为这些组件不是万能的,有时候的需求是满足不了的,这是就需要进行二次封装

遇到一些没有接触过的东西,就需要花多一些时间去上手

26、如何与后端合作

前端与后端合作无非就是拿数据,后端给的api接口不是说能够完全满足,所以这个时候就需要保持沟通

27、webpack

1.webpack是什么?

JavaScript应用的静态模块打包工具。

28、$route$router的区别

$route是“路由信息对象”,包括pathparamshashqueryfullPathmatchedname等路由信息参数

$router是“路由实例”对象包括了路由的跳转方法,钩子函数等

29、vue.js的两个核心

数据驱动、组件系统

30、移动端的兼容问题

1.h5底部输入框被键盘遮挡问题 使用flex布局解决·

2.禁止 iOS 弹出各种操作窗口

3.CSS动画页面闪白,动画卡顿 解决使用transform和opacity不使用定位

4.禁止复制、选中文本

31、工具类的封装

1.树形组件

2.日历组件

3.日期格式

4.转时间戳

32.按钮级别权限控制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值