函数声明与函数表达式
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()
经过上面定义的总结,所以上例,其实就是一个函数表达式,而不是一个函数声明再赋值给变量。
以上是关于函数声明与函数表达式的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript 函数声明与函数表达式的区别 函数声明提升(function declaration hoisting)