函数声明和函数表达式的区别

1、函数声明

可以理解为:创建一个函数名为func的函数体,并自动地创建一个名为func的变量来存储函数 可以理解为:创建一个函数名为func的函数体,并自动地创建一个名为func的变量来存储函数
(拥有函数提升的效果) (拥有函数提升的效果)


2、函数表达式(通常指:匿名函数)

理解为:创建一个没有名字的函数体(匿名函数),然后把它赋予给名为funcs的变量 理解为:创建一个没有名字的函数体(匿名函数),然后把它赋予给名为funcs的变量
(只有执行到函数表达式这部分的时候,才会创建函数体) (只有执行到函数表达式这部分的时候,才会创建函数体)

3、函数表达式也可以用函数名

理解为:创建一个函数名为 func的函数体,并手动地创建funcs变量,用来存储函数体。 理解为:创建一个函数名为 func的函数体,并手动地创建funcs变量,用来存储函数体。
此时,就不会自动地在作用域中添加一个以函数名为名字的变量 (此时,就不会自动地在作用域中添加一个以函数名为名字的变量)
        函数名 和 保存函数的变量,两者有一定区别!! 函数名 和 保存函数的变量,两者有一定区别!!
1.函数名不能在全局中访问,因为它作为函数体的一部分,不属于变量;只能在函数体内访问; 1.函数名不能在全局中访问,因为它作为函数体的一部分,不属于变量;只能在函数体内访问;
     2.函数名和保存函数的变量两者保存的内容相同; 2.函数名和保存函数的变量两者保存的内容相同;
    对应打印: 对应打印:
两者的关系,,,不管你懂不懂,反正我都懂了 两者的关系,,,不管你懂不懂,反正我都懂了
经验分享 程序员 微信小程序 职场和发展