JavaScript 函数声明,函数表达式,匿名函数的区…

2018-06-24 00:02:57来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

function fnName(){xxxx};        // 函数声明:使用function关键字声明一个函数,在指定一个函数名。

//例如:(正常,因为 提升 了函数声明,函数调用可以在函数声明之前)
fnName();
function fnName(){
  alert('Hello World');
}




var fnName = function(){xxxx};  //函数表达式:使用function关键字声明一个函数,但是未给函数命名,最后将匿名函数赋予给一个变量。

//例如1:(报错,变量fnName还未保存对函数的引用,函数调用必须在函数表达式之后)
fnName();
var fnName = function(){
  alert('Hello World');
}
//例如2:(正常,函数表达式后面加括号,当JavaScript引擎解析到此处时能立即调用函数)
var fnName = function(){
  alert('Hello World');
}();
//例如3:(报错,JavaScript引擎只解析函数声明,忽略后面的括号,函数声明不会被调用)
function fnName(){
  alert('Hello World');
}();




function(){xxxx};               //匿名函数:使用function关键字声明一个函数,但是未给函数命名,所以叫匿名函数,匿名函数属于函数表达式,
                                //匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或者创建闭包等等。
                                
//例如:(语法错误,语法错误,虽然匿名函数属于函数表达式,但是未进行赋值操作,所以javascript引擎将开头的function关键字当做函数声明,报错:要求需要一个函数名)
function(){
  alert('Hello World');
}();

 先来给大家看两个小例子:(1)

var foo = 1;
  (function(){
      console.log(foo);   
      var foo = 2;
      console.log(foo);   
})();

输出:undefined  和   2

(2) 

var foo = 'Hello';
  (function(){
      console.log(foo); 
      var bar = 'world';
      console.log(foo + bar); 
    })();
console.log(foo + bar); 

 

 

如果我的内容对你有帮助,欢迎打赏

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:点进来你就知道,98%程序员都不清楚的小秘密:为何getElementsByT

下一篇:DVA框架统一处理所有页面的loading状态