在变量作用域方面,函数声明和函数表达式有什么区别?

时间:2015-10-25 19:11:06   收藏:0   阅读:518

函数声明

 

 

  1. function foo() {}

 

 

 

 

函数表达式

如果没有函数名的话,一定就是函数表达式,但是对于有函数名的情况该如何判断呢?
Javascript 规定如果整个函数体是作为表达式的一部分时,那么它就是函数表达式,否则即是函数声明。

 

 

 

  1. //简而言之,只有下面这样的写法才是函数声明,其他的写法统统都是函数表达式
  2.  
  3. function 函数名(){
  4.     //函数体
  5. }

 

 

匿名函数表达式

 

 

  1. var foo = function() {};
  2. //上面的例子将一个匿名函数赋值给了变量 foo
  3. foo; // ‘undefined‘
  4. foo(); // this raises a TypeErrorvar 
  5. foo = function() {};

 

 

命名函数表达式

 

 

  1. var foo = function bar() {
  2.    bar(); // 可以在函数内部调用(实际使用时一定要设置退出条件)
  3.    };
  4. bar(); // ReferenceError

 

 

原文:http://www.cnblogs.com/nullObj/p/4909198.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!