笔记

css水平居中

css3动画 @keyframes

promise实现

改变this指向:

  • 箭头函数
  • 函数内部使用_this=this
  • 使用call apply bind
  • new关键字

apply接收的是数组,call接收参数列表

js继承方式

  • 借用构造函数
  • 组合继承
  • 原型继承,后来别Object.create()规范化了
  • 寄生
  • 寄生组合

箭头函数

  • this指向问题
  • 不可以当做构造函数,无法使用new
  • 不存在arguments对象,可用rest代替

Promise

  • 有异步操作时,就要用到promise来封装
  • reject方法等同于抛出错误
  • 已经resolve了,就不能抛出错误了
  • then方法中的第二个参数定义的是reject状态的回调函数,但是一般不这么做,一般是将promise所产生的错误统一由catch方法来捕获,因为promise的错误具有冒泡性质,用catch可以捕获then方法执行中的错误,类似于try…catch…
  • finally方法意味着无论如何,最后都会执行它,比如关掉服务器
  • 将多个promise实例,包装成一个新的promise实例
  • resolve方法将现有对象转为promise对象
  • reject类似于throw,是用来抛出错误的;catch是用来处理错误
  • 如果在 then 的第一个函数里抛出了异常,后面的 catch 能捕获到,而第二个函数捕获不到

link和@import的区别

  • link不仅可以引入css,还支持rss等其他事务;@import只支持css
  • link在页面加载时同步引入css,@import需要等到页面加载完毕后才引入

事件绑定

  • 行内绑定
  • 动态绑定
  • 事件监听

jq事件绑定

  • bind,one,unbind

async await

navigator.userAgent获取浏览器版本

serviceworker 消息推送 离线缓存

xss 跨站脚本攻击
csrf 跨站请求伪造