vue:https://segmentfault.com/a/1190000016344599
https://www.cnblogs.com/fanlinqiang/p/7940379.html
https://www.jianshu.com/p/c2d44d97fa9a
https://cn.vuejs.org/v2/guide/reactivity.html
angular:
-
less 结构清晰,实现多重继承
-
inherit函数 typescript
-
js 求数组最大最小值的方法,.arr.sort(a-b)排序 reduce()相加总和,去重indexOf和fitter
-
js继承 https://www.cnblogs.com/ranyonsue/p/11201730.html https://www.cnblogs.com/humin/p/4556820.html
原型链继承: 子类的原型等于父类的实例。
构造函数继承:用.call()和.apply()将父类构造函数引入子类函数(在子类函数中做了父类函数的自执行(复制))
组合继承:先call(this, name)再prototype闭包是在一个函数里声明了另外一个函数,并且这个函数访问了父函数 作用域里的变量。
闭包容易导致内存泄露,解决变量导致的内存泄露,将变量清除 a = null 即可;移除事件监听。
前端如何检查内存泄露?(1).使用Chrome的开发者工具profiles来进行快照对比。(2).用Node提供的process.memoryUsage()方法来检查heapUsed用到的堆。
https://segmentfault.com/a/1190000010420744
https://www.cnblogs.com/humin/p/4556820.html
https://www.cnblogs.com/ranyonsue/p/11201730.html
原生js:
原型链。说白了,其实就是实例对象和原型之间的有限链,就是用来实现共享属性和继承的。
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Generator
https://www.runoob.com/js/js-type-conversion.html
8.数组的方法 https://blog.csdn.net/museions/article/details/78491040
forEach()会修改原来的数组。而map()方法会得到一个新的数组并返回。
不改变原数组:
1、concat() 连接两个或多个数组,并将新的数组返回,不改变原数组,返回新的数组
2、join() 把数组中所有元素放入一个字符串,将数组转换为字符串,不改变原数组,返回字符串
3、slice() 从已有的数组中返回选定的元素,提取部分元素,放到新数组中,参数解释:1:截取开始的位置的索引,包含开始索引;2:截取结束的位置的索引,不包含结束索引。不改变原数组,返回一个新数组
4、toString() 把数组转为字符串,不改变原数组,返回数组的字符串形式
改变原数组:
5、pop() 删除数组最后一个元素,如果数组为空,则不改变数组,返回undefined,改变原数组,返回被删除的元素
6、push() 向数组末尾添加一个或多个元素,改变原数组,返回新数组的长度
7、reverse() 颠倒数组中元素的顺序,改变原数组,返回该数组
8、shift() 把数组的第一个元素删除,若空数组,不进行任何操作,返回undefined,改变原数组,返回第一个元素的值
9、sort() 对数组元素进行排序,改变原数组,返回该数组
10、splice() 从数组中添加/删除项目,改变原数组,返回被删除的元素
11、unshift() 向数组的开头添加一个或多个元素,改变原数组,返回新数组的长度
9.Https、Http、Http2.0
HTTPS协议需要到CA申请证书,一般免费证书很少,需要交费。
HTTPS运行在SSL之上,SSL运行在TCP之上,HTTP协议运行在TCP之上,所有传输的内容都是明文。
HTTPS可以有效的防止运营商劫持,加密传输、身份认证。
HTTP 2.0大幅度的提升 web 性能,二进制传输,多路复用在一个TCP连接中存在多个流同时发送多个请求,SPDY对header压缩。
浏览器输入URL后发生了什么:
DNS解析域名成IP,