前端面试题(持续更新答案)
目录
Html
1、块元素和行元素
块级元素:div、p、h、ul、li、ol、dl、dt、dd
行内元素:a、span、img、input、select、button
空元素:br、hr、link、meta
2、html语义化
就是用相应的标签做相应的事,比如标题使用<h>标签,文本内容使用<span>标签,图片元素使用<img>标签等等,这有利于文档的可读性以及可维护性。
-
html5新特性和移除标签
-
渐进增强和优雅降级
-
浏览器内核
-
浏览器输入url到显示页面过程
-
实现圆形可点击区域
-
cookie,sessionStorage,localStorage
-
网站性能优化
CSS
1、居中问题
水平居中:
1)margin: 0 auto; (适用于大部分情况下的水平居中)
2)行内元素:text-alin: center;
3)绝对定位式:
父元素——position: relative;
子元素——
position:absolution;
left: 50%;
transform: translateX(-50%);
4)flex布局:如果你想要将某个元素里面的内容居中,那么这个元素设置——
display: flex;
justify-content: center;
这样一来,子元素就不用加class了,即使是多个子元素。
(此处建议学习贯通flex布局,对写静态页面有很大帮助)
垂直居中(父元素要有高度,就是要有固定高,即使是自适应的固定高):
1)行内元素:line-height:当前元素高度; (注意,设了边框的元素可能会有一些偏移(box-sizing导致),把line-height高度减去两个边框宽度就好了)
2)绝对定位式:
父元素——position: relative;
子元素——
position:absolution;
top: 50%;
transform: translateY(-50%);
3)flex布局:
display:flex;
alin-items: center;
水平垂直居中:把上面两个涉及到相同属性的,结合一下就好了。
-
清除浮动
-
外边距坍塌
-
盒子模型
-
em和rem
-
BFC
-
position定位
-
css初始化
-
自适应布局
-
css优化
JavaScript
-
typeof返回数据类型
-
强制类型转换
-
this
-
创建对象
-
数组去重
-
判断是否为数组
-
原型
-
事件代理
-
同步异步
-
js执行机制
-
浅拷贝和深拷贝
-
http和https
-
ajax
-
promise
Vue
1、生命周期
Vue实例从创建到销毁的过程,就是生命周期;
共八个阶段:创建前后、加载前后、更新前后、销毁前后;
每个阶段对应有事件钩子(钩子函数),挂载不同事件使Vue实例形成更好的逻辑;
首次页面加载会执行前四个钩子;
data数据在创建后(created)可操作,可执行异步操作;
dom在加载后(mounted)才可操作。
(细节)生命周期钩子的一些适配场景:
beforecreatd:可加loading事件;
created:初始化完成时的事件,如结束loading事件,异步请求;
mounted:挂载元素,获取dom结点;
updated:对数据统一处理;
beforeDestory:可以加一个是否销毁(关闭)的确认框;
nextTick:更新数据后立即操作dom
-
MVVM
-
Vue核心
-
v-for和v-if
-
watch和computed
-
data为什么是函数
-
路由跳转方式
-
跨域