JavaScript执行顺序
JavaScript执行顺序
JavaScript(以下简称js) 是一种描述型脚本语言,由浏览器进行动态的解析与执行。由于js编写位置比较灵活,所以处在不同位置的js代码执行顺序也是不同的。js和其他编程语言相比比较随意,所以js代码中充满各种奇葩的写法。苦逼的公司造就苦逼程序员全栈工程师,工作中总是经常自己写些简单的前端页面,经常被js的执行顺序袭扰,索性找个大块儿时间好好学习总结下,理解各型各色的写法,希望能对js的语言特性有深入的理解。
函数的声明和调用
函数的定义方式大体有以下两种,浏览器对于不同的方式有不同的解析顺序。
- 使用
function
关键字声明一个函数,再指定一个函数名,叫函数声明。1
2
3function Fn1(){
alert("Hello World!");
} - 使用
function
关键字声明一个函数,但未给函数命名,最后将匿名函数赋予一个变量,叫函数表达式,这是最常见的函数表达式语法形式。如果遇到函数声明,则进行预处理(类似C语言的编译);如果遇到函数表达式,则只是将函数赋值给一个变量,不进行预处理,待调用的时候再进行处理。1
2
3var Fn2 = function(){
alert("Hello World!");
}
@(#函数声明)👆↑ 这段代码()可以正常运行,弹出”Hello World!”警告对话框。浏览器对Fn1()进行了预处理,再从Fn1();开始运行。1
2
3
4Fn1();
function Fn1(){
alert("Hello World!");
}