面试总结

1.水平垂直居中
  • flex布局
    父元素:display:flex; flex-direction:row; justify-content:center; align-items:center;
  • 绝对定位
    left:50%; top:50%; margin-left:-width; margin-top:-height
  • 绝对定位
    left:0; top:0; right:0; bottom:0; margin:auto
  • table
    父元素:display:table
    子元素:display:table-ceil; vertical-align:middle; text-align:center
2.react中的绑定事件和js中的有什么不同?
  • js中事件直接绑定DOM,走的是原生事件机制
  • react事件不是直接绑定在DOM上,而是将所有对象绑定在document上,使用统一的事件监听,然后利用冒泡机制,当事件传播到document时,将事件封装给正式的函数处理和运行。react事件是合成对象而不是原生对象
3.react 中key的作用
  • 唯一标识组件,diff算法中element比较是根据key判断插入、删除还是移动
4.改变this的指向,以及他们之间的区别
  • apply():第一个参数为作用域,第二个参数是(1:array; 2:arguments对象)
  • call():第一个参数为作用域,第二个是参数列表(逐个举例)
  • bind():第一个参数为作用域,第二个是参数列表
  • 区别:bind会返回执行上下文被改变的函数,而不会立即执行,会被返回,需要手动调用,call和apply会立即执行
5.this的指向
  • 作为函数调用,严格模式下指向undefined,非严格模式下指向window
  • 作为对象的方法调用,指向调用的对象
  • 作为全局函数,指向window
  • 作为构造函数中的this,指向新创建的对象
  • apply、call、bind可以绑定this
6.如何根据屏幕大小设置根元素的字体(rem)
  • html{font-size:16px}则1em=16px
  • 例以640px屏幕为基准时,html{font-size:20px},1em = 20px;当屏幕宽度为320px时,则根元素的字体大小应该相应的缩小一半,html{font-size:10px},1em = 10px
7.setState()是异步的吗
  • setState在合成事件和钩子函数中是异步的,在原生事件和setTimeout中都是同步的。
  • setState的批量更新也是异步的,建立在(合成事件和钩子函数之上)
  • setState本身执行过程和代码是同步的,只是合成事件和钩子函数的执行顺序在更新之前,导致没法立马拿到更新后的值,也就形成了异步。可以通过setState(state,callback)第二个参数拿到更新后的结果
8.箭头函数和普通函数的区别
  • 箭头函数没有自己的this、arguments
  • 普通函数在变量提升中是最高的,箭头函数没有变量提升
  • 箭头函数不能作为构造函数,不能被new,没有原型对象
9.webpack如何将css压缩为单独的css文件
安装 extract-text-webpack-plugin
  npm i extract-text-webpack-plugin -D
在webpack.config.js中引入该模块
  const ExtractTextWebpackPlugin = require('extract-text-webpack-plugin');
在webpack.config.js 中的 plugins 中加入new  ExtractTextWebpackPlugin('css提取出去的路径') 
  plugins: [
      new ExtractTextWebpackPlugin('/css/demo.css') 
  ]
10.性能优化
  • 减少http请求,合并js、css、图片
  • 压缩资源体积
  • http缓存
  • css文件放在头部、js放在底部
  • 减少对dom的操作
  • 使用事件委托,减少事件监听
11.强缓存怎么实现
  • Expires
  • Cache-Control 设置max-age
12.闭包是什么?闭包的应用
  • 闭包:有权访问另一个函数作用域中变量的函数
  • 应用:1.读取其他函数内部变量 2.封装私有变量
13.事件委托
  • 事件委托:通过监听一个父元素,利用冒泡机制触发事件
14.css实现三角形
  • border实现
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • $HTML, HTTP,web综合问题 1、前端需要注意哪些SEO 3、HTTP的几种请求方法用途 4、从浏览器地...
    peng凯阅读 787评论 0 1
  • 前端开发面试知识点大纲: HTML&CSS: 对Web标准的理解、浏览器内核差异、兼容性、hack、CSS基本功:...
    秀才JaneBook阅读 2,597评论 0 25
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,879评论 1 45
  • HTML5面试题总结1.基础问题 = 和 == 和 === 的区别?= : 用于赋值 == : 用于判断 === ...
    LorenaLu阅读 1,237评论 0 4
  • 面试题链接地址 https://juejin.im/post/5cbff661e51d456e693f48ec#h...
    祝家庄打烊阅读 545评论 0 1