定义函数两种方式: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
函数递归调用:
网友评论