js如何把json数据传到function外部使用

从后端获取的data数据
var xhr = new XMLHttpRequest();
xhr.open('get', 'URL', true);
xhr.send();
xhr.onreadystatechange = function() {
  if (xhr.readyState == 4 && xhr.status == 200) {
    var data = JSON.parse(xhr.responseText);
}
}
console.log(data);

打印出来的data是错误的,如何能把data引到function外部使用
我想要达到的结果,能在function外部打印出data数据:

img

img

第一你先了解一下变量的作用域,第二你在自己实际看看代码执行的顺序,不是写在下面就会最后执行,当变量还没有定义或者还没有被赋值的时候,你就去打印他,就会出现你这样的疑惑。


var xhr = new XMLHttpRequest();
var data = [];
xhr.open('get', 'URL', true);
xhr.send();
xhr.onreadystatechange = function() {
  if (xhr.readyState == 4 && xhr.status == 200) {
    data = JSON.parse(xhr.responseText);
}
}
console.log(data);