javascript函数定义表达式和函数声明的区别是什么?

javascript函数定义表达式和函数声明的区别是什么?下面本篇文章给大家介绍一下函数定义表达式和函数声明的区别。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

在javascript中,函数有两种定义写法,函数定义表达式和函数声明,其例子分别如下所示:

var test = function(x){
 return x;
}
function test(x){
    return x;
}

尽管函数定义表达式和函数声明语句包含相同的函数名,并且都创建了新的函数对象,但是这二者却有区别。

函数声明语句中的函数名是一个变量名,变量指向函数对象。

函数定义表达式和通过var声明变量一样,其函数被提前到了脚本或函数的顶部,因此它在整个脚本和或函数内都是可见的。这样的话,只有函数变量声明提前了,函数的初始化代码仍然在原来的位置。但是使用函数声明的话,函数名称和函数体均提前了,即脚本中的函数和函数中嵌套的函数都会在当前上下文中其它代码之前声明,也即可以在声明一个函数之前调用它。

举个例子:

test(1);
function test(x){
  console.log(x);
}

上述代码能正常执行,结果输出为1;因为对于函数声明语句,函数名称和函数体均提前声明了,可以在声明之前调用它。

test(1);
var test = function(x){
  console.log(x);
}

上述代码不能正常执行,会报错。

因为对于函数定义表达式,只有函数变量声明提前了,但是函数的初始化代码仍然在原来的位置,也即相当于如下的代码

var test;   //函数变量声明提前
  test(1);
  var test = function(x){
    console.log(x);
}

因此,会报错test不是一个函数的错误。

更多web前端知识,请查阅 HTML中文网 !!

以上就是javascript函数定义表达式和函数声明的区别是什么?的详细内容,更多请关注易知道|edz.cc其它相关文章!

推荐阅读

    excel怎么用乘法函数

    excel怎么用乘法函数,乘法,函数,哪个,excel乘法函数怎么用?1、首先用鼠标选中要计算的单元格。2、然后选中单元格后点击左上方工具栏的fx公

    excel中乘法函数是什么?

    excel中乘法函数是什么?,乘法,函数,什么,打开表格,在C1单元格中输入“=A1*B1”乘法公式。以此类推到多个单元。1、A1*B1=C1的Excel乘法公式

    标准差excel用什么函数?

    标准差excel用什么函数?,函数,标准,什么,在数据单元格的下方输入l标准差公式函数公式“=STDEVPA(C2:C6)”。按下回车,求出标准公差值。详细

    2010年底DIY硬件总结和安装参考

    2010年底DIY硬件总结和安装参考,,它似乎只是一眨眼的功夫从过去的最后一眼。看看现在的岗位似乎就在昨天,但看看当年的内容是真的走了,如果

    保存硬盘上的数据,谁更有价值

    保存硬盘上的数据,谁更有价值,,常用的数据存储方式有两种:硬盘和光盘。用户或多或少对自己说,好的有很多人。争了,不知道你是否有账户的账号,两

    excel常用函数都有哪些?

    excel常用函数都有哪些?,函数,哪些,常用,1、SUM函数:SUM函数的作用是求和。函数公式为=sum()例如:统计一个单元格区域:=sum(A1:A10)  统计多个

    谁是最好的价值500元

    谁是最好的价值500元,,测试总结和购买建议: CPU性能,Phenom II X4 955领先遥遥领先 我们总结了前面的CPU性能测试成绩与实际游戏测试与f

    19英寸/22英寸宽屏更有价值

    19英寸/22英寸宽屏更有价值,,两种流行LCD现状及未来趋势 2006宽屏后;的洗礼,宽屏液晶显示器已经成为市场的主要力量,这是一个不争的事实。这