函数表达式和函数声明

2017-10-25  本文已影响0人  daisx

定义函数两种方式:A(函数声明)、 B(函数表达式)
A:函数声明方式定义函数:函数声明的重要特性:函数声明提升。
注意点:①不在任何函数内声明的变量(函数内省略var的也算全局)称作全局变量(global scope)
function a() {
console.log('hello word');
}
B:函数表达式定义函数;匿名函数也称为拉姆达函数。
var b=function () {
console.log('hello word');
};

变量声明提升: 通过 var 声明的变量在代码执行之前被引擎提升到了当前作用域的顶部。
函数声明提升: 通过函数声明的方式(非函数表达式)声明的函数在代码执行之前被引擎提升到了当前作用域的顶部,而且函数声明提升优先于变量声明提升。

实例1:
a();
var a;
function a() {
console.log(1);
}
a = function() {
console.log(2);
}
a();
运行结果:
1
2

实例2:
a();
var a;
function a() {
console.log(1);
}
a = function() {
console.log(2);
}
function a() {
console.log(3);
}
a();
运行结果:
3
2

函数递归调用:

上一篇下一篇

猜你喜欢

热点阅读