JavaScript的解析顺序对函数有哪些影响?

今天小编来给大家分享一下JavaScript的解析顺序对函数的影响有哪些。

1、函数的定义方式

我们都知道,在JavaScript中有两种定义函数的方式,分别为声明式函数和赋值式函数,但是两种函数在执行顺序却有不同。

比如:

声明式
赋值式

在声明式的函数中,函数在未定义之间执行没有任何问题,会在控制台中打印1,但是赋值式的就会报错,会告诉你fn不是一个函数,这是为什么呢?这就要从JavaScript的解析顺序说起。

2、JavaScript解析顺序

JavaScript解析顺序分为预编译期与执行期。

也就是说JavaScript在执行代码之前会先进行预编译,在预编译期JavaScript会对本代码块中所有声明的变量和函数进行预处理,需要注意的是这里面只会将变量进行声明,但不进行初始化赋值,而且这里面处理的函数是声明式的函数。

举例

JavaScript在处理上面的代码时,先预编译,简单理解,就是将所有变量声明和声明式函数先读一遍,也就是说在代码执行之前,JavaScript已经知道这段代码中有两个变量a、b和一个函数体fn,可以这样理解Javascript先建立一个仓库把他们存起来。

举例

接下来就是执行阶段,执行阶段就没什么好说的了,就是代码一行一行执行。

举例

如果有其他疑问或是看法可以在评论里或投稿跟小编进行讨论,也可以关注微信公众号【筑梦前端】进行投稿,与小编一起探讨更多的编程知识。

你可能感兴趣的:(JavaScript的解析顺序对函数有哪些影响?)