含着劲跳糖来聊一下ES5继承和ES6继承的区别,在ES6还没有发布的时候 ,js定义类是以函数的形式,例如

function TestFather() {
this.aa = ‘aa’;
}
TestFather.prototype.getAA = function() {
return this.aa
}

   而ES6 已经可以用关键class来定义个类 例如

class TestFather {
constructor() {
this.aa = ‘aa’;
}
getAA() {
return this.aa;
}
}
let father = new TestFather();
father.getAA();

ES5中构造函数是function函数本身 而 ES6中构造函数 是constructor 函数,类似与java
接下来谈一下ES5继承和ES6继承
ES5继承是

function AA () {
this.aa = ‘aa’
}
AA.prototype.getAA = function() {
console.log(this)
return this.aa
}
function BB() {
AA.call(this)
}
BB.prototype = new AA()
BB.prototype.constructor = BB
let bb = new BB()
bb.getAA() // log BB { aa: ‘aa’ }

而ES6的中继承

class AA {
constructor() {
this.aa = ‘aa’
}
getAA() {
console.log(this)
return this.aa
}
}
class BB extends AA {
constructor() {
super()
}
}
let bb = new BB() // log BB { aa: ‘aa’ }
bb.getAA()

    ES6中子类继承父类的属性使用了super关键字,ES6语法实现是ES5的语法糖,表面上 ES6的类关键字和子类继承关键字 实现的结构和ES5继承一样 但是根本还是有差别的 其中ES5继承prototype属性是先实例化父类 直接继承 而 ES6实在实例化子类对象时继承父类prototype,即实例化父类。

在javascript中 用proto属性表示一个对象的原型链 当查找一个对象的属性时,javascript会向上遍历原型链 知道找到指定名称的属性为止
实现扩展方法

实现一个对象ObjectExtend的扩展
Object.prototype.Extend = function(objectExtend,object){

for(var key in object){
    if (object.hasOwnProperty(key) && objectExtend[key] === undefined) {
         objDestination[key] = objSource[key];
     }
}
return objectExtend;
}

上述例子实现将object属性 给objectExtend中
Object类是所有类的父类 父类中的内置方法和定义方法子类会继承

git的shell平常很少用 一般就用git的相关插件一键提交 不过还是还是知道比较好
git中如何将文件下较多的文件提交

git add -A //多文件添加
git add . //多文件添加
git add 文件夹名

可以在根目录下增加.gitignore文件来过滤添加的文件

git commit
git status 文件名 //列出当前目录所有还没有被git管理的文件和被git管理且被修改但还未提交(git commit)的文件.
git status -uno //可以只列出所有已经被git管理的且被修改但没提交的文件。

又要开始学习一门框架了 ——react
这次还是用npm包管理工具 慢慢来 具体后面需要什么 再加

npm install -g create-reacte-app
create-react-app myReact
cd myReact
到这里 可以看见一个简单的目录结构 不过还是少点什么
接下来执行
npm run eject 用来显示隐藏的webpack配置文件

src source的缩写 是script iframe img标签的属性 用于获取资源
href Hypertext Reference 网上专业语言这么说的
指定网络资源的位置,从而在当前元素或者当前文档和由当前属性定义的需要的锚点或资源之间定义一个链接或者关系。
至于 link css中href属性 是由于有rel属性
rel属性 rel 属性规定当前文档与被链接文档之间的关系 正是href的定义
–完

HTTP2.0是超文本传输协议2.0 下一代的HTTP协议 只适用于https://网址
网页优化的一大关键局是要将传输的数据压缩为最小 而 HTTP2.0有很多关于这方面的优化
接下来将HTTP1.1和HTTP2.0进行对比

#http1.1

  1. 持久连接 每个TCP连接开始都有三次握手 而开启持久化连接后不必要每次都握手 即request属性中的Connection 为keep-alive
  2. HTTP管道 持久HTTP多次请求满足先进先出 发送请求 等待响应完成 发送下一个请求
    单 HTTP1.1不允许多路复用 假如发送两个请求 记事客户端同时发送两个请求 先请求HTML 在请求CSS 而且CSS资源先准备就绪服务器一会先响应HTML资源 在响应 CSS 但是 HTTP2.0可以多路复用 按照优先级返回响应
  3. HTTP1.0增加请求和响应首部 方便能够交换有关请求和响应的元信息
    HTTP2.0新增首部压缩
  4. 连接和拼合
    减少请求次数是性能优化的关键 HTTP1.X可以吧多个资源捆绑打包 通过一次网络请求获取
    HTTP2.0可以多向请求和响应 消除了请求多个资源就是用多个TCP连接
  5. 嵌入资源 把资源嵌入文档中可以减少请求次数
    #http2.0
  6. http2.0的性能增强 全在于二进制分帧层 作用是定义如何封装HTTP消息并在客户端和服务端之间传输
  7. 所用HTTP2.0通信都在一个连接上完成 连接承载任意数量的双向数据流 每个数据流以消息发送 消息由一个或者多个帧组成 HTTP2.0最小的通信单位是帧 帧可以乱序发送 根据帧首部的流标识重新组装 流可以并行的在同一个TCP连接上交换消息
  8. 多向请求和响应 HTTP1.X中客户端想发送并行的请求和改进性能 必须使用多个TCP连接 HTTP2.0需要一个就行
  9. HTTP2.0新增请求优先级 根据浏览器请求优先的资源进行响应避免不必要的阻塞
  10. 服务器推送 HTTP2.0可以进行服务器的推送
  11. 首部压缩
    HTTP2.0连接的两端都知道已经发送那些首部 根据之前接受首部数据进行对比 只发送差异的部分

参考http2.0

html5 是万维网的核心语言 经过第五次重大修改 在2014年10月定制完成 支持浏览器IE9+
JS中新增document.querySelector()和document.querySelectorAll 两个API
后者如果没有匹配内容返回空数组 前者没有匹配返回null

html5新增 footer header aside section nav 等等 语义化标签 便于搜索引擎的优化
input的type新增 email url number range date属性
新增媒体标签 video audio 等媒体标签
为什么会出现html5?
为了使电脑更加理解网页的内容
提高了用户的体验
出现媒体标签更好地代替flash
有助于开发人员的理解和维护
跨不同浏览器平台的友好性

今天竟然感冒了 好好准备考试 再去找实习 加油 终有一天会成功 等到那一天 我会回来在这篇博文中留下印记 加油

今天在写前端登录验证在纠结用angular1 还是用 vue 最后还是选择了 vue
原因有二:

  1. angular1好久没用了 有点生疏 最近写的都是用vue 比较亲切 当然这不是主要原因
  2. vue是一个渐进式框架 angular1集成了太多用不到 vue想用什么引入插件就好 这个是主要原因

考虑再三 还是选择了vue 哈哈不过 http模块不准备引入axios 感觉兼容性有点不好 还是用vue-resource
不知不觉代码没写多少 就测试了一下 真是编程五分钟 扯淡两小时啊 哈哈 晚上还有个班饭 不知不觉大三已经接近尾声 大学的生活马上结束了 要步入社会了 心中总有一些激动和震颤的心情

晚上还有楚乔传要看 哈哈 沉迷楚乔 无法自拔

-完

在自习室一下午和一晚上 除了完成save操作 就是在晚上找登录的那个模板 总算找到个合适的 找登录模板比写模板更累 那么多模板 累屁了 明天继续干活
啊 夜宵来一桶泡面就去看楚乔传 哈哈