在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ js return 如何解釋

js return 如何解釋

   getUserData = function () {
        $.ajax({
            "type": "get",
            "url": imgJson,
            "async": false,
            "success": function (data) {
                if(data.code==0){
                    res = data.code;
                }else{
                    res = data.data;
                }
            }
        });
        return res;
    };

執(zhí)行這個方法的時候是 return 返回值;

還是在以下success之后就res全局污染了

"success": function (data) {
                if(data.code==0){
                    res = data.code;
                }else{
                    res = data.data;
                }
            }
回答
編輯回答
遺莣

res沒有聲明過,默認為全局變量。

2017年9月22日 03:31
編輯回答
慢半拍

兩個都對

  1. 你的這個ajax是同步的請求 不是異步 就是說等請求結(jié)果返回了之后 代碼才能繼續(xù)執(zhí)行 所以這里的res就是success執(zhí)行完成后的結(jié)果
  2. 全局污染了, 因為變量沒有使用var或者let來聲明 就會被聲明在全局變量上 所以也是全局污染

如果你把ajax中參數(shù) 改下 "async": true, 就看出區(qū)別了
那在請求返回之前 全局變量res都是undefined 所以還是getUserData函數(shù)返回值是undefined 但是在一段時間后其他地方直接使用res變量的話 還是能獲取到值的 不過多少時間后能用 就不確定了

2017年1月23日 00:00