麦都-平台开发组

javascript学习笔记(高级篇)

写作时间:2018-05-08

此文仅对javascript的知识点做梳理。若对具体知识点不了解,请自行搜索或参考权威书籍。以后会逐步对每个知识点做系列化文章分享。

面向对象 OOP

  • 对象有封装和继承特性(但js无法实现多态)
  • 值类型不是对象;一切引用类型都是对象
  • 对象Object都是通过函数Function创建的;函数Function是一种对象(Object)
    • Object 是所有对象的超类,Object是没有原型的
    • 但是实例化对象(new) 不是Function对象的实例
      • var o = new Object; 
        console.log(o instanceof Function); //返回false
    • 但是Object与Function 互为实例,但是两个不同的构造器
  • 对象都有__proto__ 隐藏的属性(原型链)
    • 访问一个对象时,先查找其基本属性,返回null时,再沿着__proto__原型链上查找继承属性
  • 函数都有prototype属性
    • prototype属性值是一个对象,包含
      • __proto__
      • constructor  返回当前对象的构造函数
      • instanceof    检测一个对象是不是一个类的实例
      • hasOwnPropety
      • 等等

正则表达式  

  • RegExp对象,对字符串执行模式匹配的工具
  • 直接量语法:/pattern/attributes
  • 创建RegExp对象:new RegExp(pattern,attributes)
    • 参数pattern是一个字符串,指定了正则表达式的模式;参数attributes是一个可选的参数,包含属性 g,i,m,分别使用与全局匹配,不区分大小写匹配,多行匹配;

模块化

  • 规范:AMD、CMD
  • seaJS
  • RequireJS

面向切面 AOP

高级函数

  • 惰性载入函数
    • 即只在第一次执行,第一次执行后再调用得到的结果都是一样的
  • 函数柯里化(Currying)
  • 级联函数

高级技巧

  • 变量作用域和闭包(闭包是函数)
  • this:执行时调用的对象 
  • 按值传递和按引用传递

数据推送

  • Comet
  • WebSocket
  • SSE(Server-Send Event)

多线程:并发执行

  • Concurrent.Thread.js
  • WebWork

Ajax

  • HTTP基础
  • Node.js

设计模式


未完待续...