新學HTML5,遇到個問題,我在利用input type="file"控件讀取本地的JSON文件里的JSON數據并插入到body中去,代碼如下:<script> var aa = 1; var loadFiles = document.getElementById("loadFiles");//獲取id為loadFiles的input對象 function handleFiles(files){ if(files.length){ var file = files[0]; var reader = new FileReader(); reader.readAsText(file); reader.onload = function(){ aa = 2; console.log(aa); }; console.log(aa); } }</script><body><input type="file" id='loadFiles' onchange="handleFiles(this.files)" /><div id="filesContent" ></div></body>我發現兩次console.log打印的結果,反而是先aa=1被打印出來,其次onload函數里面的aa=2才被打印出來,我查資料得知reader的onload方法是在它調用readAsText方法后立即調用的,為什么會先打印后面的console(也就是說我在onload方法外面調用的全是aa=1),這個onload函數和后面的console調用順序究竟是怎樣?
js中函數和變量的訪問順序?
慕田峪9158850
2018-08-15 10:10:45