前端面试题快速记忆

598 阅读2分钟

一、html部分:

  • 前端SEO:dtk,语义化,js,iframe,速度

二、css部分:

  • 双飞翼:margin负值,100%,margin自适应。、
  • 圣杯:margin负值,padding,相对定位负值,100%
  • 单冒号和双冒号:css3中单冒号伪类,双冒号伪元素;css2中有用单冒号表示伪元素。
  • 画三角形:宽高0,边框透明,留一框。
  • 高度自适应:定位拉升。
  • 省略号:隐藏溢出,溢出用省略号表示,不换行。

三、html5部分:

  • 本地存储l,s,c:l手动5,s关闭5,c过期时间4(Expires)。

四、css3部分:

  • flex:flex-grow(占据多余空间,1,比例),flex-shrink(空间不足收缩,0),flex-base(无效,px,百分比,收缩)。

五、scss/less部分:

  • 环境,变量符@$,ifelsefor,导入,导出

六、JavaScript部分:

  • 创建对象:(Object,字面量,构造fn+this,原型,构造fn+this+原型)
  • 继承:(改变原型1,改变this,改变原型和this,改变原型2,赋值新对象,改变隐式原型)
  • 防抖:cb做事件回调,闭包内部函数中清除定时器
  • 节流:只有定时器执行完成,才允许再次执行定时器。

七、es6部分:

  • 解构(参数赋值),...(数组解构),set去重(...迭代set),promise原理(then中cb在resolve中执行),generator处理promse(yield后接promise,then回调中调next,value传入next),async/await是generator的语法糖。

八、jquery部分:

  • 往数组里收集节点, 遍历节点,调用dom方法。

九、vue部分:

  • 响应式原理:get收集,set更新
  • 子组件原理:在render阶段生成组件构造函数VueComponent和组件vnode,在update阶段进行子组件初始化,将template生成真实节点elm,将elm赋值给组件vnode的elm属性
  • nextTick原理:将要更新的watcher和手写的callback收集到一个数组中,在定时器中遍历数组元素,执行watcher.run和callback函数。
  • 对象新加属性响应:给对象属性赋值,并且手动更新dep.notify()
  • 数组变异方法响应式:先执行数组方法,再手动更新dep.notify()
  • key的作用:快速找下标
  • 父传子: 父组件将data传递给组件vnode,组件vnode见data传递给组件实例,组件实例通过代理就可以直接使用this访问data了
  • 子传父: 将函数名和函数值做成一个map,子组件调用$emit,其实根据传入的参数执行响应的函数,在函数中修改父组件的data
  • 编译原理:将源码编译成AST,将AST转换成with函数
  • hash路由原理:监听hashchange事件获得hash值,来改变视图
  • history路由:通过pushState和replaceState设置历史记录并根据url来改变视图,当触发popsState获得最新url,来改变视图。
  • vuex:将state赋值给内部vue实例的date,在state的get函数中收集计算属性Watcher和渲染Watcher,在state的set函数中更新。

十、webpack部分:

  • 基本原理:在闭包中执行模块脚本,并将返回脚本执行结果。
  • 构建加速:升级,多进程,dll,开启缓存,缩小打包作用域
  • 性能优化:压缩,抽离css,cdn

十一、性能优化部分:

  • 减少请求(合并文件,替换图片,缓存,空src和href),减小体积(压缩静态资源,gzip,webp),优化资源加载(css方head,js方底部,组件按需加载,预加载,懒加载),优化网络连接(cdn),

十二、安全部分:

  • xss:注入恶意脚本,存储,url,dom,转义,only。
  • csrf:带着cookie在危险网站访问本站,验证码,hash值。

十三、http协议部分:

  • 状态码:1请求收到,2成功,3重定向,4请求错误,5服务端错误
  • https:

八、ts部分:

  • 11

九、react部分:

  • 111

十五、动画部分:

  • 111

十五、网络部分:

  • 111

十五、绘图部分:

  • 111

十五、node(express/koa2)部分:

  • 111

十一、web端多页应用(jquery)部分:

  • 111

十一、web端单页应用(vue)部分:

  • 111

十一、mpvue小程序部分:

  • 111

十二、nuxt服务端渲染部分:

  • 111

十三、electron桌面端部分:

  • 111

十四、react-native客户端部分:

  • 111

十五、php服务端部分: