美文网首页web前端干货集锦
JavaScript 模式(二)

JavaScript 模式(二)

作者: MELODY_DZG | 来源:发表于2016-09-12 21:07 被阅读3次

    函数基本


    1.总体说明

    • 函数是对象,可以动态创建,可以扩展,可作为参数和返回结果,可以拥有属性和方法
    • 函数提供作用域,代码块不提供

    2.函数声明

    • 命名函数表达式
      var funcName = function funcName(){
          //TODO
      };
    
    • 匿名函数表达式
      var funcName = function(){
          //TODO
      };
    
    • 函数声明
      function funcName(){
          //TODO
      }
    

    【说明】

    • 命名函数表达式和匿名函数表达式都必须以分号结束
    • 函数声明不能用来分配变量和属性,只能在 函数体内部 或者 全局空间中使用

    3.函数的命名属性

    函数默认具有name属性,三种声明下:

    • 命名函数表达式: name为funcName (一般变量和函数名相同,否则IE不能正确实现)
    • 匿名函数表达式: 空字符串(其他浏览器)或者undefined(IE浏览器)
    • 函数声明: name为funcName

    4.函数提升(hoisting)

    • 对于所有变量,在函数体的任何地方进行声明,都会被提升到函数顶部
    • 函数声明会将整个函数在域内提升
      function region(){
    
         funcHoist(); //执行函数
         
         //函数声明
         function funcHoist(){
             //TODO
         }
      }
    
    • 函数表达式会将变量名提升,但函数本身不提升
        function region(){
    
         funcNoHoist(); //报错,类型为undefined
         
         //函数声明
         var funcNoHoist = function(){
             //TODO
         }
      }
    

    相关文章

      网友评论

        本文标题:JavaScript 模式(二)

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