最近出去遇到的面试题(初级,长期更新)
1.数据类型
基本数据类型:number string boolean null undefined
引用数据类型:function object Array
2.防抖和节流的区别
防抖:触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间(resize事件)
节流:高频事件触发,但在n秒内只会执行一次,所以节流会稀释函数的执行频率(搜索框input事件, 浏览器滚轮事件)
区别:节流不管事件触发有多频繁,都会在规定时间内执行一次,而防抖只是在最后一次事件后才触发一次
3.路由传参的方式
Query是查询参数,用path传参:this.$router.push({path:"地址",query:{id:"123"}})
Params是路由参数,用name传参:this.$router.push({name:"地址",params:{id:"123"}})
4.数组去重的方法
Es6:Set(). Map(). Filter()
5.箭头函数和普通函数的区别
没有固定的this指向,this指向按照当前函数所在作用域
不能使用 argument,通过剩余参数获取
不能用作构造函数,不能用new命令
6.Set和Map区别
Set用于数据重组,成员不能重复,只有键值没有键名,类似数组,可以遍历,方法有add,delete
Map用于数据储存,本质上是键值对的集合,类似集合,可以遍历,可以跟各种数据格式转换
7.Vue生命周期
初始化
beforeCreate:组件实例创建之初,属性生效之前被调用(钩子函数执行)
create:数据初始化完成,但是页面还没有渲染,不可以操作dom(场景:发送网络请求 注册全局事件)
挂载
beforeMount:组件挂载前被调用,没有获取真实dom
mounted:页面挂载完毕,此时页面上已经有了真实dom
更新
BeforeUpdate:在组件数据修改,数据更新前调用
update:组件数据修改,视图更新后调用(数据改变,想获取最新dom)
销毁
bforeDestory:在组建销毁前调用
Destoryed:在组件销毁后调用(解绑事件 移除事件侦听器 关闭定时器)
新增
errorCaptured:当捕获一个来自子组件发错误时调用,会收到三个参数:错误对象,发生错误组件实例,以及包含错误来源信息的字符串,返回false,阻止继续向上传播
父子组件执行顺序
1)加载渲染过程:父beforeCreate-->父created-->父beforeMount-->子beforeCreate-->子created-->子beforeMount-->子Mounted-->父Mounted
2)子组件更新过程:父beforeUpdate-->子beforeUpdate-->子update-->父update
3)父组件更新:父beforeUpdate-->父update
4)销毁过程:父bforeDestory-->子bforeDestory-->子Destoryed-->父Destoryed
8.如何判断js数据类型
1)type of, 可以正确检查number, string, boolean, undefined, function, 检查其他的(包括null), 返回的都object
2)instanceof, 实际是检查原型链上有没有某个构造函数, 可以检查多层继承关系, 但是对于Number, String,Boolean, 必须通过new⽅式创建才能检查出来, 检查undefined和null也是Object
3)Object.prototype.toString.call(target).slice(8, -1), 这种⽅式可以正确检查所有类型
9.如何判断变量是Array类型
Array.isArray()
10.typeof和instanceof的区别
1)typeof判断基本数据类型
2)Instanceof判断一个变量是否属于某个对象的实例
页面更新:2024-05-04
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号