函数声明与函数表达式

Posted 伊优

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数声明与函数表达式相关的知识,希望对你有一定的参考价值。

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

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()    

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

以上是关于函数声明与函数表达式的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段8——声明函数

js函数表达式和函数声明的区别

函数声明与函数表达式的区别

JavaScript 函数声明与函数表达式的区别 函数声明提升(function declaration hoisting)

函数声明 函数表达式 与立即调用函数表达式的比较

函数声明与函数表达式