2019前端面试题整理(含答案版)

144 阅读3分钟

越来越领会到输出对学习提升的重要性,故整理一些知识点并长期更新。

html、web篇

  1. 介绍下SEO

SEO意为搜索引擎优化,title,description,keyword, 权重性依次,title分隔符,用_对百度友好,-对谷歌友好, pc大概30个字,移动端20个,超出为省略号,图片要设置alt、301跳转

  1. web 开发中会话跟踪的方法有哪些

URL重写、cookie、token、session

  1. 介绍下doctype

作用是告诉通用语言解释器要用什么格式解析文档,html4基于sgml有三种模式,严格模式、过度模式、框架模式,有严格模式的DTD+url或者过度模式+url都会以严格模式呈现,过度+没url、不存在、写错了,会以混杂出现

  1. 如何进行网站性能优化
  2. flex是哪几个的缩写 ? flex: sha

css篇

介绍一下bfc

bfc可以理解为一个特有的css样式,这个样式会为元素增加如下特性

  1. bfc内部样式不影响外部
  2. 计算高度时内部的浮动元素也参与计算
  3. 同一个bfc内部元素的垂直margin会重叠
  4. BFC的区域不会与float box重叠

那么如何触发bfc呢

  1. float不为none
  2. overflow不为默认的visible
  3. 根html元素
  4. display为inline-block、table-cell、table-caption
  5. position为absloute、fixed

js篇

BOM

offsetWidth/offsetHeight,clientWidth/clientHeight 与 scrollWidth/scrollHeight 的区别

offsetWidth clientWidth scrollWidth
content+padding+border content+padding content + padding + 溢出内容的尺寸

ES核心

  1. call、bind、apply、new 执行优先级如何? 为啥?
function Parent() { return this.a }

var obj={ a: 'obj.a' }
var children = Parent.bind(obj);
children.call(this)
打印值是啥?

//没想到吧? 是 'obj.a'

隐式转换及其原理

  1. 算数运算符中"+"代表两个含义,数字相加和字符串拼接
  2. 隐式转换原理是先把数据都转化成原始数据类型,然后先调用他们的valueOf()方法,如果没有再调用他们的toString方法,然后再相加
  3. 每个原始数据类型除了null和undefined都有包装对象如:'1'.valueOf()实际上是String('1').valueOf()

继承和原型

对比变量相等及其原理

Promise

浏览器篇

框架篇

react

react-native

mobx

redux

工程化篇

打包构建(webpack)

持续集成

git

网络篇

get和post区别

get和post均为协议,本质上都是tcp请求。

  1. get可以缓存
  2. get会存历史记录
  3. get是幂等的
  4. 无请求体
  5. 有长度限制
  6. 安全的

状态码

  • 100 服务端已经接收到了请求,表明一切正常,应该继续发请求
  • 200 请求成功
  • 201 成功并且创建了新资源
  • 300 可选择资源重定向
  • 301 永久重定向
  • 302 临时重定向
  • 400 客户端发送了语法错误导致无法理解
  • 401 身份验证失败
  • 403 拒绝访问
  • 404 资源没了
  • 500 Internal Server Error 服务端懵了
  • 502 代理服务器或者网关收到了上游的错误响应
  • 503 服务器挂了

算法篇

node篇

其他篇