2022前端面试题整顿(具体)更新中

一、根底局部

1.1、罕用的块与行属性内标签有哪些?有什么特色?

块标签:div、h1~h6、ul、li、table、p、br、form。
特色:独占一行,换行显示,能够设置宽高,能够嵌套块和行
行标签:span、a、img、textarea、select、option、input。
特色:只有在行内显示,内容撑开宽、高,不能够设置宽、高(img、input、textarea等除外)

1.2、常见的盒子垂直居中的办法有哪些请举例3种?

利用子绝父相定位形式来实现

 <style>        .container{            width: 300px;            height: 300px;            position: relative;        }        .conter{            width: 100px;            height: 100px;            position: absolute;            top: 50%;            left: 50%;            margin-top: -50px;            margin-left: -50px;        }    </style>

利用Css3的transform,能够轻松的在未知元素的高宽的状况下实现元素的垂直居中。

 <style>        .container{            position: relative;        }        .conter{            position: absolute;            top: 50%;            left: 50%;            transform: translate(-50%,-50%);        }    </style>

flex 弹性布局来实现

<style>        .container{         display: flex;         justify-content: center;         align-items: center;        }        .conter{                    }    </style>

1.3、常见的盒子垂直居中的办法有哪些请举例3种?

二、js局部

2.1、== 和 ===的区别?

==是非严格意义上的相等。值相等就相等
===是严格意义上的相等,会比拟两边的数据类型和值大小。值和援用地址都相等才相等

2.2、js数据类型有哪些,区别是什么?

根本类型:string,number,boolean,null,undefined,symbol,bigInt
援用类型: object,array
根本类型存储在栈中,空间小,操作频繁
援用数据类型寄存在堆中,它的地址在栈中,个别咱们拜访就是它的地址

2.3、let和const 的区别是什么?

let 命令不存在变量晋升,如果在 let 前应用,会导致报错
如果块区中存在 let 和 const 命令,就会造成关闭作用域
不容许反复申明
const定义的是常量,不能批改,然而如果定义的是对象,能够批改对象外部的数据

2.4、什么是防抖和节流,js 如何解决防抖和节流?

首先 防抖就是触发下一个事件时进行掉上一个事件
节流是 触发以后事件须要在上一个事件完结当前
通过设置节流阀(定时器)

三、vue框架

3.1、Vue的生命周期都有哪些?

beforeCreate(创立前)、created(创立后)、beforeMount(载入前)、mounted(载入后)、beforeUpdate(更新前)、updated(更新后)、beforeDestroy(销毁前)、destroyed(销毁后)
第一次页面加载时,会执行那些?
beforeCreate(创立前)、created(创立后)、beforeMount(载入前)、mounted(载入后)
如果应用了keep-alive会在多两个:activated、deactivated

3.2、vue双向数据绑定的原理?

mvvm场景:数据操作比拟多的场景,须要大量应用DOM元素时,采纳mvvm的凋谢形式,会更加便捷,让开发者更多的经验放在数据的变动上,解放繁琐的DOM元素
MVVM 模型,
M 数据 从后盾获取的商品数据
V 视图 就是写好的页面,每一个div,每一个input 都是视图
VM 视图模型,
数据发生变化,通过视图模型会扭转视图的显示,视图上的扭转,也会通过视图模型进而影响数据的变动
外围:对于VUE双向数据绑定,其外围是 Object.defineProperty()办法。

3.3、v-if 和v-show有什么区别?

相同点:都能够管制dom元素的显示和暗藏
不同点:v-show只是扭转display属性,dom元素并未隐没,切换时不须要从新渲染页面
v-if间接将dom元素从页面删除,再次切换须要从新渲染页面

3.4、v-for 循环为什么肯定要绑定key ?

给每个dom元素加上key作为惟一标识 ,diff算法能够正确的辨认这个节点,使页面渲染更加迅速!

3.5、Vuex 的 5 个外围属性是什么?

state => 根本数据
getters => 从根本数据(state)派生的数据,相当于state的计算属性
mutations => 提交更改数据的办法,同步!
actions => 像一个装璜器,包裹mutations,使之能够异步。
modules => 模块化Vuex
简述vuex数据传递过程
页面通过mapAction异步提交事件到action。action通过commit把对应参数同步提交到mutation,mutation会批改state中对应的值。 最初通过getter把对应值跑出去,在页面的计算属性中,通过,mapGetter来动静获取state中的值
mutations(批改state外面的数据,然而他只能执行同步的操作,异步必须写在action外面)
state(放数据)
action(执行异步操作)
getter(计算属性)
moudel(容许将繁多store拆分多个store并且同时保留在繁多的状态中)

3.6、请说出vue.cli我的项目中src目录每个文件夹和文件的用法?

assets文件夹是放动态资源;
components是方组件;
router是定义路由相干的配置
view是视图
app.vue是一个利用主组件
main.js是入口文件

3.7、promise是什么,有什么作用?

promise 是一个对象, 能够从扭转对象获取异步操作信息
他能够解决回调天堂的问题,也就是异步深层嵌套问题

四、其余