前端面试题

112 阅读4分钟

一、HTML5 1.语义化标签 例如:img表示图片 p表示段落 2.SVG与Canvas ECharts的绘图底层就是用的Canvas SVG有用于绘图的也有用于图标的 项目中没用过 3.地理定位,拖拽api都没用过 4.WebStorage 分为localStorage和sessionStorage 用于存储数据的,一般用sessionStorage sessionStorage是会话存储,网页关闭存储的数据就会清楚 localStorage是长期存储,关闭网页数据还在,除非代码删除或者用户手动删除 二、Css3 1.盒模型 标准和模型 怪异盒模型(ie) 标准和模型:box-izing:content-box 怪异盒模型:box-sizing:border-box 2.布局 display:flex;弹性布局 弹性盒子 3.媒体查询 @media用于适配各种分辨率的 4.文字换行 white-space:normal; 5.边框 border:1px solid #333; 6.动画 @keyframes 7.过渡 transition 三、Es6 1.const 和 let const 声明常量,声明后必赋值,赋值后不能修改 let 区域作用域 没有变量提升 2.结构 let res = { id:1, a:2

let {id,a} = res 3.模板字符串 11111${data} 字符串直接写,变量用${}包裹 4.箭头函数 function(){ } ()=>{} 箭头函数的this指向会改变,箭头函数没有自己的this指向 5.展开运算符 let res = { id:1, a:2} let b = {...res,c:1} 6.this 7.promise 用于解决回调地狱,项目中为了等待异步函数都是用async await 其中await返回的必须是promise对象 四、js 1.数据与内存 2.函数 function(){} ()=>{} 3.面向对象 js中万物皆对象 4.线程机制与事件机制 一、MVVM M:model v:view vm:viewModel 讲的是一种模型 vue rect用的是MvvM 严格来说并不是 angular用的是真正的mvvm vue rect 用的是spa单页面 用于后台管理项目 局部刷新 不利于seo优化 angular用的是multi多页面 用于官网 页面整体跳转 利于seo优化 二、SPA 单页面 局部刷新 用于后台管理系统 不利于seo优化(后台管理系统也不需要seo优化) 会出现首屏加载白屏,时间不长一般不解决或者数据没请求过来时用loading 三、diff vue的底层算法,会拿着key值进行对比,有改变才会更新,没有改变直接拿缓存里的,是一种性能提高的方式 四、虚拟dom vue底层用的就是虚拟dom,他是为了提高性能的,他会再改变都diff之后更新之后一起渲染,而不会每个小部分都一个个更新 二、 1.vue的原理 vue的双向数据绑定的原理 vue2用的:object.denfineProperty() vue3用的:proxy 2.生命周期 四对 beforeCreate() created():data methods等渲染完毕 可以用来请求数据

beforeMount() mounted():dom元素渲染完毕,可以获取dom元素

beforeUpdate() updated()

beforeDestroy() destroyed() 3.指令 v-if :dom元素的创建销毁 v-show:dom元素的显示隐藏 v-model:表单元素的双向数据绑定 v-for:数据循环 4.组件间的通讯 父传子:自定义时间 子传父:自定义事件 或者用vuex数据仓库 5.路由模式 history hash:一般用hash,hash会有# history没有 6.路由守位 前置守卫:常用 后置守卫 组件内守卫 路由守卫 7.keepalive 缓存 8.vuex vue的数据仓库,每个组件都可以从这里拿数据 一、 1.组件局部刷新 SPA就是组件局部刷新 2.页面跳转逻辑 router-link 编程式跳转 this.push() this.push({name:}) 3.如何高效操作dom(v-if和v-show的使用原则) v-if:dom元素的创建和销毁 (用于一次性的显示或者隐藏) v-show:dom元素的显示和隐藏(用于反复显示和隐藏元素) 一、 1.时跨域如何解决 不满足同源策略就会产生跨域 前端开proxy代理或者后者开权限 2.cookie和session 都是用于存储数据的,cookie的存储量要小,我们项目中用的session 3.输入url发生了什么 三次握手 4.强缓存与弱缓存 5.get post请求 get数据携带在后面,数据不安全 post数据在请求体里,数据安全 6.http状态码 200请求成功 404也没没找到 403没有权限 500服务器错误 502参数错误 一、前端优化的方式 代码优化:代码格式统一好读取 减少dom元素的操作 js优化:使用懒加载 css优化:使用预处理器 seo优化,一般后台管理系统不考虑