函数声明与函数表达式

来源:互联网 发布:哪些犯罪知乎 编辑:程序博客网 时间:2024/04/26 15:31

js中,定义函数常用的两种方法:函数声明函数表达式
函数声明:

function sum(item1,item2){    //代码块}

函数表达式:

var sum = function(item1,item2){    //代码块};

函数声明和函数表达式存在的一个最大的区别就是:函数声明会被提升,即js引擎会将函数声明提升到顶部。如下代码:

console.log(sum(1,2));function sum(item1,item2){    return item1+item2;}

上述代码结果输出为3,虽然还没有执行到sum函数,但是因为在js中,解析器会先读取函数声明(即函数声明提升),并使其在执行任何代码之前可用。
但是,如下代码会在运行期间产生错误:

console.log(sum(1,2));var sum = function(item1,item2){    return item1+item2;}

因为执行到函数所在语句之前,变量sum中不会保存有对函数的引用。

补充:变量声明

同样的,和函数声明提升一样,在js中还存在变量声明提升

var a = 1;function printA(){    console.log(a);    var a = "这是函数里的A";}printA();  //undefined

因为在函数printA中,存在变量a会被提升到最前面。

0 0
原创粉丝点击