函数声明与函数表达式

定义函数的方式有两种:一种是函数声明,一种是函数 表达式

function functionName(arg0,arg1,arg2){
  //函数体      
}

  首先是function关键字,然后是函数的名字,这就是指定函数名的方式。在Firefox,Safari,Chrome和Opera都给函数定义了一个非标准的name属性,通过和这个属性可以访问到给函数指定的名字。这个属性的值永远等于跟着function关键字后面的标记符

//只有在Firefox,Safari,Chrome和Opera有效

alert(functionName.name) // 'function'

第二种函数表达式 常见的形式为

var functionName=function(arg0,arg1,arg2){
    //函数体
}

  MDN上函数表达式的语法是

  参数:

  name:函数名称。可被省略,此种情况下的函数是匿名函数。函数名称只是函数体中的一个本地变量

  paramN:被传递给函数的一个参数名称。一个函数至多拥有255个参数

  statements 构成函数体的语句

  函数表达式非常类似于函数声明,并且两者拥有几乎相同的语法。函数表达式与函数声明最主要区别是函数名称,在函数表达式中可省略它,从而创建匿名函数。一个函数表达式可以被用作一个IIFE(Immediately Invoked Function Expression,即时调用的函数表达式),它一旦定义就运行。

    var p = function fn(){
		   console.log(fn)
		   console.log('1')
	}
	p()    

  经过上面定义的总结,所以上例,其实就是一个函数表达式,而不是一个函数声明再赋值给变量。

posted @ 2018-05-22 23:39  伊优  阅读(2103)  评论(0编辑  收藏  举报