关于js的作用域的问题 没有搞懂是怎么执行的方法

图片说明
获取json文件内容 控制台输出拼接的内容 为什么第一 第三个箭头有值 第二个是空字符串呢 不应该是自上往下执行吗?

因为getJSON()中的回调函数是异步执行的,你可以将回调函数当做文件加载完毕的事件,类似window.onload的事件。
先执行的是第二个console.log($url); 这时$url还没有重新赋值。

一般接口都是异步请求