JS一些总结

JS高级总复习

Javascript基础复习

面向对象

  • 把解决问题的重点放在解决问题相关的对象上
  • 封装/继承/多态
  • 对象:无序的键值对
    1. 属性:数值类型的
    2. 方法:函数类型的
  • 创建对象的方法
    1. 字面量:用完之后不可复用
    2. 内置对象创建:a)创建的是空对象,需要手动添加属性 b)动态特性:创建好对象后,可以给对象添加属性和方法
    3. 工厂函数:定义一个对象,给他动态添加属性,返回
    4. 自定义构造函数:a)也是函数的一种,一般用来初始化对象  b)和new一起出现,new创建一个对象,构造函数初始化对象  c)返回new创建的对象  d)如果return的基本类型,不影响,仍返回new对象 / 返回Object类型,返回这个Object
    5. 自定义构造函数的执行过程:a)先使用new创建对象  b)把new创建出来的对象交给构造函数的this
        c) 在构造函数内部通过this给对象封装方法
  • 原型
    1. 在构造函数创建出来的时候默认会创建一个与对象与之关联,这个对象就是原型对象
    2. 访问 构造函数.prototype / 对象._ proto _
    3. 原型的使用:直接替换/混入式添加属性和方法/经典继承
    4. 原型链:每个对象都有原型对象,原型对象又有原型对象

Function

  • 创建函数

递归

  • 化归思想
  • 案例:求和、阶乘、斐波那契数列、获取所有页面节点

作用域

  • 词法作用域
  • 变量提升
  • JS执行阶段
    1. 预解析阶段
    2. 执行阶段

作用域链

  • 外部无法访问内部作用域
  • 内部可访问外部

闭包

  • 封闭的对外不公开的空间
  • 外面访问不到
  • 外部访问只能通过内部的接口
  • 作用:保护数据
  • 案例:返回多个值/设置及获取、歌曲播放列表、解决斐波那契数列问题、闭包对缓存实现了一个保护作用
  • jQuery实现缓存
    1. 定义一个对象存储数据
    2. 定义一个数组存储键:a)记录顺序  b)记录长度,超容量判断

沙箱模式

  • 一个封闭的对外隔离的环境
  • 避免外界窃取内部的数据
  • 使用自调用(IIFE)函数实现
  • 限制作用域
  • 自调用函数没有名字
  • 代码结构
    1. 最上面:定义变量
    2. 中间:逻辑代码
    3. 下面:暴露接口(有利于代码压缩)
      1.最后及加上window
      2.给函数一个形参
      3.形参.变量 = 变量
  • 作业:封装第三方插件、封装框架

函数调用模式

  • 函数调用模式
    1. this指向window
  • 方法调用模式
    1. this指向与之关联的对象
  • 构造函数调用模式
    1. this指向new创建的对象
  • 上下文调用模式
    1. call(对象,[],[],..[])
    2. apply(对象,[])
      1. 可以用apply实现借用构造函数
      2. 在当前函数使用其他函数.apply()

注册事件兼容性

  • addEventListenter(事件,处理函数)
  • attachEvent(on 事件,处理函数)
    1. 回调函数的this的指向与其他两个不同
  • on事件 = 处理函数
  • 案例:
    1. 歌曲管理案例
      1. 方法写在原型
      2. 属性写在构造函数内
    2. Tab栏切换案例

你可能感兴趣的:(JS一些总结)