函数

  • 当写一个函数的时候先知道输入在知道输出,然后再写里面的逻辑。
  • 返回对象的函数叫构造函数
  • fn.call(this,arguments)
    • call()的第一个参数是this,其他参数统称为 arguments
    • 当你不确定参数的个数时,就使用 apply
  • 柯里化函数:函数里面return一个函数里面再return一个函数或值
  • 高阶函数:在数学和计算机科学中,高阶函数是至少满足下列一个条件的函数:
    1. 接受一个或多个函数作为输入:forEach sort map filter reduce
    2. 输出一个函数:lodash.curry
    3. 不过它也可以同时满足两个条件:Function.prototype.bind

异步

面向对象

返回对象的函数叫构造函数(类) 封装:提供接口实现消息的传入传出,例如把100行代码封装成函数,或封装成对象都是封装,主要是隐藏细节,减少沟通成本 继承:主要为了复用代码 多态:多态就是不同对象中同种行为的不同实现方式,主要是为了代码更加灵活,易于扩展

原型实现面向对象 window.Object.prototype 所有对象的原型 obj.proto 对象继承的子原型 每个对象都有 __proto__这个__proto__指向创建这个对象的函数的显式原型Object.prototype 每个数组都有 __proto__这个__proto__指向创建这个对象的函数的显式原型Array.prototype 每个数字类型都有 __proto__这个__proto__指向创建这个对象的函数的显式原型Number.prototype 数字类型与布尔值类型也是如此,不一一举例

  • 循环(loop),指的是在满足条件的情况下,重复执行同一段代码。比如,while语句。
  • 迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项。比如,for语句。
  • 遍历(traversal),指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一次。
  • 递归(recursion),指的是一个函数不断调用自身的行为。比如,以编程方式输出著名的斐波纳契数列。