前端面试题
HTML
1,分别写出以下的几个 HTML 标签,加粗,居中,下标,字体
加粗 <b></b><strong></strong>
下标 <sub></sub>
居中 <center></center>
字体 <font><basefont>
2,请写出至少5个html5新增的标签,并说明其语义和应用场景
section 文章中的某一个段落
nav 导航
header 头部
footer 尾部
aside 页面关联部较低的
3,说出 html 语义化的理?
a) 有利于 seo 优化
b) 去掉样式也可以清晰的看到页面的结构
c) 方便设备的阅读
d) 便与团队的开发和维护
4,请简述一下 src 和 herf 的区别?
src 用于替换当前的元素, href 用于和服务器建立连接。
CSS
1,如何清除浮动?
overflow:hidden, claer:both。
2,如何隐藏一个元素?
visibility:hidden
display:none
opasity:0
transform: scale(0),设置无线小
height:0
3,在CSS样式中常使用px、em,各有什么优劣,在表现上有什么区别?
px是相对长度单位,相对于显示器屏幕分辨率而言的。
em是相对长度单位,相对于当前对象内文本的字体尺寸。
px定义的字体,无法用浏览器字体放大功能。
em的值并不是固定的,会继承父级元素的字体大小,1 ÷ 父元素的font-size × 需要转换的像素值 = em值。
4,CSS3有哪些新特性?
CSS3实现圆角(border-radius),阴影(box-shadow),对文字加特效(text-shadow),线性渐变(gradient),变形(transform)
Vue
1,watch 和 computed 的区别?
computed 是计算属性,对绑定到 view 的数据进行处理,不可定义到 data 里,因为返回给的结果会附给这个变量,变量不可被重复定义。
computed 具有缓存性,页面重新渲染值不变化,计算属性会立即返回之前的计算结果,而不必再次执行函数。
watch 是一个观察动作,无缓存性,页面重新渲染时值不变化也会执行。
深度监听需要加,deep = true。
2,active-class 是哪个组件的属性?
vue-router 的 router-link 的属性。
3,怎么定义动态路由?
在 router 目录下的 index.js 中对 path 属性加上 id,使用router对象的params.id。
4,vue-router 有几种钩子函数?
三种,
第一种:全局导航钩子:router.beforeEach(to,from,next),作用:跳转前进行判断拦截。、
第二种:组件内的钩子
第三种:单独路由独享组件
5,Sass 和 Less 的区别?
都是 CSS 的预编译语言,定义变量的符号不一样,Less 是@,Sass 是$, Sass 支持条件语句,if,else,for;Less 不支持,Sass 是有服务器端处理的,Less 需要引入 Less.js 来处理 Less 代码输出到浏览器。
6,axios 是什么?
请求后台的资源模块,是使用 promis 封装的,成功 .then 输出, 失败 .catch 输出。
7,vuex 是什么?
vuex 是 vue 框架种的状态管理工具,一般在登录状态,音乐播放,组件之中使用。可以用 mapState([]),mapActions,mapMutations 来使用。
8,说下你对生命周期的理解。
a) 创建前/后: 在beforeCreated阶段,vue实例的挂载元素$el和数据对象data都为undefined,还未初始化。在created阶段,vue实例的数据对象data有了,$el还没有。
b) 载入前/后:在beforeMount阶段,vue实例的$el和data都初始化了,但还是挂载之前为虚拟的dom节点,data.message还未替换。在mounted阶段,vue实例挂载完成,data.message成功渲染。
c) 更新前/后:当data变化时,会触发beforeUpdate和updated方法。
d) 销毁前/后:在执行destroy方法后,对data的改变不会再触发周期函数,说明此时vue实例已经解除了事件监听以及和dom的绑定,但是dom结构依然存在
9,对于 MVVM 的理解?
MVVM 是 Model-View-ViewModel 的缩写。
Model代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑。
View 代表UI 组件,它负责将数据模型转化成UI 展现出来。
ViewModel 监听模型数据的改变和控制视图行为、处理用户交互,简单理解就是一个同步View 和 Model的对象,连接Model和View。
在MVVM架构下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,Model 和 ViewModel 之间的交互是双向的, 因此View 数据的变化会同步到Model中,而Model 数据的变化也会立即反应到View 上。
ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。