JavaScript函数声明与函数表达式

JavaScript函数声明与函数表达式

怎样定义一个函数

        在JavaScript里有两种定义函数的要领

  1. 函数声明
            function 函数称号 (参数:可选){ 函数体 }

  2. 函数表达式
            function 函数称号(可选)(参数:可选){ 函数体 }

罕见的函数定义以及所属的定义要领

  • function foo(){} 函数声明

  • var bar = function foo(){}; 函数表达式

  • new function bar(){}; 函数表达式

  • function foo(){ function bar(){} 函数声明}

  • (function(){})() 函数表达式

  • +function(){}() 函数表达式

  • !function(){}() 函数表达式

  • ;(function(){})() 函数表达式,分号横竖前面没加分号,剖析毛病

函数声明与函数表达式的一些纤细的差别

在JavaScript里函数声明会有一个hoist的历程,也就是说在函数实行的之前,函数体就已被剖析了。一个典范的例子

if (true) {
  function foo() {
    return 'first';
  }
}
else {
  function foo() {
    return 'second';
  }
}
foo();

一般情况下,获得的效果是 second

var foo;
if (true) {
  foo = function() {
    return 'first';
  };
}
else {
  foo = function() {
    return 'second';
  };
}
foo();

我们能获得想要的效果

http://www.nowamagic.net/librarys/veda/detail/1630

    原文作者:kukuv2
    原文地址: https://segmentfault.com/a/1190000003713006
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞