JavaScript的解析顺序对函数的影响

1.函数的定义方式

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

比如:

声明式


赋值式


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

2.JavaScript解析顺序

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

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

举个例子:


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


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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部