低级前端开辟口试总结

前端口试总结

先说背景,本人2018年7月毕业,客岁十月校招到本年10月一向在做前端开辟事情,年前盘算换事情,就从新梳理下口试考点

总结包括:

JavaScript基础,CSS基础,罕见算法和数据结构,React&Vue框架,计算机网络相干学问,能够有的点很细,有的点很大,参考个人状况举行总结,轻易对学问举行回想,有的枚举出了参考答案,有的则在文末枚举了优异回复

闭包

  • 闭包的观点?
  • 闭包的作用?
  • 运用闭包的注重点?

事宜机制

  • 事宜3个阶段 事宜捕捉阶段,处于目的阶段,事宜冒泡阶段
  • 默以为事宜冒泡

ES6

  • let const class 模块化 等等经常使用ES6学问
  • 箭头函数作用,此处能够扩大考核 this指向题目
  • set map 相干

原型链

  • 4种继续体式格局
  • new 道理

深拷贝&浅拷贝

  • 数据类型
  • 基础数据类型和援用数据类型

跨域

  • 同源战略
  • CORS
  • JSONP
  • Iframe + document.domain

平安

  • CSRF 跨站要求进击 (道理,保护措施 referer token 验证码,设置cookie的httponly属性,post要求等等
  • XSS (同上

HTTP 要领

  • 几种要领引见
  • axios库

输入URL到页面胜利衬着的进程

  • 典范题目 (任何一个步骤都能够引伸来考核
  • DNS剖析 (详细的剖析进程
  • TCP衔接
  • http要求 (状况码考核
  • 返回数据 浏览器衬着页面 (页面衬着进程
  • 上面这些模块下面逐一例举

DNS剖析进程

  • 观点
  • 浏览器缓存
  • 体系缓存
  • 路由器缓存
  • 域名提供商
  • 顶级域名服务器
  • 主域名服务器

浏览器页面衬着

  • 加载html构建页面dom树
  • 剖析css 构建衬着树
  • 衬着树构建完成后,将衬着树绘制到屏幕(回流和重绘
  • JS剖析,会壅塞dom树的构建

状况码

  • http缓存 304
  • 强迫缓存 (expires cache-control
  • 对照缓存 ( Etag & if-none-match last-modified & if-modified-since
  • 301 302 区分(永久性重定向(带缓存和临时性重定向)

渣滓接纳

  • 援用计数
  • 标记消灭

TypeScript

  • 运用就不说了,总结下优瑕玷
  • 增加了代码的可读性和可维护性 编译时毛病提醒
  • 包容性 .js 可写为 .ts
  • 拥抱ES6, 框架支撑
  • 进修本钱高如:类,泛型,接口

函数式编程

  • 观点 雷同的输入 永久的到雷同的输出,且没有任何副作用
  • 副作用 比方 ajax要求 转变全局变量
  • 优瑕玷 1.缓存性 2. 可移植性 3. 并行性 不需要共性内存
  • 柯里化的观点,作用( 最好不要答装逼 我还没想到更好的答案
  • 我枚举一个知乎答案: 一致接口,封装的每一层都乾乾净净,逻辑表现清晰

IndexedDB

  • 特性
  • 区分LocalStorage SessionStorage(1.同步 2.存储大小)

WebSocket

  • 观点
  • 特性
  • readyState

排序算法

  • 罕见的排序算法 复杂度 稳固性
  • 疾速排序 不稳固 空间复杂度O(logn) 均匀时候复杂度O(nlogn) 最差…O(n2)
  • 挑选排序 不稳固 空间复杂度O(1) …一切都是O(n2)
  • 冒泡排序 稳固
  • 堆排序 不稳固 空间复杂度O(1) …一切都是O(nlogn)
  • 插进去排序

哈希表

  • 数组和链表的特性
  • 搜刮插进去和删除的时候复杂度O(1)

二叉树

  • 先序遍历
  • 中序遍历
  • 后序遍历
  • 层序内外
  • 树高

链表

  • 翻转链表

AVL树 二叉查找树

  • 特性
  • O(logn)

精度丧失题目

  • 0.1 + 0.1 != 0.2 (为何
  • 计算机内部的信息都是由二进制存储的,然则有些浮点数没法用二进制精准的表示出来
  • 小数转整数
  • Math.round() 四舍五入
  • Math.ceil() Math.floor()

天生随机数

  • 引入 Math.random() [0,1) 的随机小数
  • parseInt(Math.random()*(m-n)+n) [n, m)
  • Math.round(Math.random()*(m-n)+n) [n, m]

数组去重

  • var set = new Set([1,1,2,2,3,3,3,3]) var arr = […set]
  • indexOf

怎样推断数组是数组

  • Array.isArray(arr) ES5的要领
  • arr instanceof Array
  • arr.__proto__.constructor === Array()
  • Object.prototype.toString.call(arr) === ‘[object Array]’ //数据原型和对象原型定义的toString 要领差别
  • Object.prototype.toString.call(obj) === ‘[object Object]’ // 如上
  • Object.prototype.toString.call(null) === ‘[object Null]’ // 引荐此要领

数组指定个数去重 findDuplicate(num)

  • es6 Set Map 相干操纵

反转字符串

JS异步

  • 异步处理汗青(Ajax的进化进程)
  • Promise,Async/Await 用法 Promise 瑕玷
  • Promise API Promise.all & Promise.race

Ajax

  • ReadyState (0, 1, 2, 3, 4) 5中状况
  • js完成ajax
  • 优瑕玷

单/双向数据绑定

  • MV** 观点
  • vue/react 数据绑定机制

Vue

  • 生命周期
  • 父子组件通讯
  • 双向数据绑定
  • vm.$nextTick道理

React

  • 生命周期
  • Virtual-dom手艺以及改进后的Diff算法
  • 对照Vue.js

数组去重 数组扁平化

深拷贝和浅拷贝

Position属性

  • 几种属性值

Box-sizing 属性

  • content-box border-box
  • 盒模子 W3c规范盒模子和IE盒模子

两栏规划 三栏规划

  • 罕见自适应规划写法

回流和重绘

  • 观点
  • 举例
  • 怎样防止 eg: DocumentFragment, Absolute

浮动

  • 伪元素和伪类
  • 消灭浮动罕见3种要领

隐蔽元素

  • display none
  • visibility hidden 区分

垂直居中规划

  • 罕见的垂直居中规划要领

前端机能优化

  • 枚举罕见前端机能优化要领

枚举一些优异回复

输入URL你能够看到什么?

HTTP缓存

域名剖析进程

vue生命周期

React生命周期

CSRF进击

程度垂直居中规划

    原文作者:ilvseyinfu
    原文地址: https://segmentfault.com/a/1190000017406763
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞