前端面试题(一)

最近出去遇到的面试题(初级,长期更新)

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

标签:遍历   数据类型   函数   组件   实例   区别   错误   参数   事件   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top