1 函数和闭包

javascript中全部函数均有返回值

对象中的函数叫做方法

1.1 函数的环境

  • 函数返回值的影响因素

    • 函数调用时输入的参数 params

    • 函数定义时环境 env

       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      
      // 两个例子
      let x = 'x'
      let a = '1'
      function f1(x){
        return x + a
      }
      a = '3'
      {
        let a = '2'
        f1('x') // 结果为'3x'
      }
      a = '4'
      /* --------------- */
      let x = 'x'
      let a = '1'
      function f1(c){
        c()
      }
      {
        let a = '2'
        function f2(){
          console.log(x + a)
        }
        f1(f2) // 打印出'x2'
      }
      
  • 闭包:如果在函数里面可以访问外面的变量,那么这个函数+这些变量=闭包

    1
    2
    3
    4
    5
    6
    7
    
    for (var i = 0;i < 6;i++){
    	setTimeout(()=>{
    		console.log(i)
    	})
    }
    // 结果:6 6 6 6 6 6
    // 因为六个函数共用一个i
    

1.2 this的值

1.3 递归与迭代

1.4 记忆化与React优化