JS函数

作者: 饥人谷_hak | 来源:发表于2017-04-05 14:02 被阅读7次

    语法

    function 函数名([参数1,参数2]){
    [语句1,
    语句2]
    return 返回值
    }
    

    函数有变量提升

    函数方法call

    fun.call(第一个参数[,参数1,参数2,参数3..])

    • 函数fun使用call的 第一个参数 就是指向this
    • 如果执行一个函数 ft(1) 它就相当于是 ft.call(undefined,1)
    • this 和 参数 都是在调用一个函数时出现 , 不调用就没有

    函数var作用域

    var a
    function f1(){
      var a = 1
      function f2(){
        a = 1
      }
      function f4(){
        var a 
      }
      
      f2.call()
      f3.call()
    }
    
    function f3(){
      a = 2
    }
    
    f1.call()
    

    这个 a = 1 是 f1 的var a , 如果 f1 没有声明 a ,就看 顶级作用域 有没有声明 , 没有的话 就是Global .

    立即执行函数

    (function(){
    /*code*/
    }());
    
    //or
    (function(){
    /*code*/
    })();
    

    上面的两种写法都要加分号 不推荐用括号写法写法 , 因为可能和上一行合到一块

    !function(){
      
    }()
    

    generator 函数

    function*(){} //这就叫generator函数

    语法yield「产出」

    function* inner() {
      yield 'hello!';
    }
    
    function* outer1() {
      yield 'open';
      yield inner();
      yield 'close';
    }
    
    var gen = outer1()
    gen.next().value // "open"
    gen.next().value // 返回一个遍历器对象
    gen.next().value // "close"
    
    function* outer2() {
      yield 'open'
      yield* inner()
      yield 'close'
    }
    
    var gen = outer2()
    gen.next().value // "open"
    gen.next().value // "hello!"
    gen.next().value // "close"
    

    函数节流

    这点参考JavaScript,

    相关文章

      网友评论

          本文标题:JS函数

          本文链接:https://www.haomeiwen.com/subject/fzstattx.html