1. 关于重构
所谓重构也就是“保持软件的外在功能不变,重新调整其内部结构”。
重构(Refactoring)就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。
为什么需要进行项目重构
每个项目重构的理由各不相同,但个人总结来主要是以下两点
- 原来的项目漏洞太多,或者稳定性太差,当前的框架很难彻底根治。
- 新的项目需求,原有的程序框架已经无法满足。
编写可维护性高的代码
细化模块分类。一般情况下,模块都会有耦合。但如果耦合度过高,往往是因为模块没有细分到位。
项目优化,体验优化
排序
常见的排序算法
遇到过什么比较难解决的问题?一般怎么做?
除了看专业方向的书还学什么其它的
优化思路
跨域,jsonp
存储, cookie, localstorage, sessionstorage
闭包,原理,常用场景
事件机制,捕获和冒泡,如何阻止冒泡?
移动端适配怎么做
https://www.jianshu.com/p/536acc447d22
Node.js
简单的说 Node.js 就是运行在服务端的 JavaScript。
Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。
Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。
Ajax的工作原理
Ajax的工作原理相当于在用户和服务器之间加了—个中间层(AJAX引擎),使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器。像—些数据验证和数据处理等都交给Ajax引擎自己来做,,只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求。
XMLHttpRequest 对象的三个常用的属性
https://www.cnblogs.com/666666CFH88888888/p/9832401.html
HTTP状态码汇总
http状态码可以让我很方便的了解到请求的所在状态,当然其也是大厂笔试的必考题。
所以很有必要总结一下,对今后的学习也是很有帮助的。
HTTP状态码总的分为五类:
1开头:信息状态码
2开头:成功状态码
3开头:重定向状态码
4开头:客户端错误状态码
5开头:服务端错误状态码
React的生命周期
React的生命周期从广义上分为三个阶段:挂载、渲染、卸载
https://www.jianshu.com/p/b331d0e4b398
https://www.jianshu.com/p/2b2d1da16947
querySelector和querySelectorAll得到的结果有什么区别
querySelector
该方法返回满足条件的单个元素。按照深度优先和先序遍历的原则使用参数提供的CSS选择器在DOM进行查找,返回第一个满足条件的元素。
element = document.querySelector('div#container');//返回id为container的首个div element = document.querySelector('.foo,.bar');//返回带有foo或者bar样式类的首个元素
querySelectorAll
该方法返回所有满足条件的元素,结果是个nodeList集合。查找规则与前面所述一样。
elements = document.querySelectorAll('div.foo');//返回所有带foo类样式的div
document.querySelectorAll(".box")得到的不是数组,是nodelist,虽然可以类似数组的for,但真的不是数组,不能直接对其使用数组的方法forEach,如果我们需要转换为数组,我们可以用Array.prototype.slice.call来辅助就可以了。
浏览器同源策略和跨域的实现方法
所谓同源是指域名,协议,端口相同。
手写 son 继承 father
var son = function (name) { this.name = name } son.prototype = new father() son.prototype.constractor = father
箭头函数的 this 根据声明时的上下文确定
vue与react的共同点与区别
共同点: