你现在是先定义了函数a,然后定义了函数b,然后再去执行函数a
即使你把代码改成这样依旧能够正常运行
a()function a() {
b()
}
function b() {
console.log(111)
}
因为JS运行环境会把定义的代码(变量/函数)提升到作用域的最前面
先加载执行a.js,完毕后再加载执行b.js。
先执行a.js,完毕后再执行b.js。
这就不可以确定谁先执行了,因为通过创建script标签引入的JS,是谁先加载完毕谁先执行,与创建顺序无关。
对于创建script标签引入JS来讲,在某些高级浏览器中有async属性用于控制是按照加载完毕的顺序执行,还是按照创建顺序执行。