JavaScript閉包和ajax

閉包的概念:javascript

  • 一個具備訪問函數局部變量的函數,也就是函數中嵌套函數;
  • 做用:閉包中引發的變量在內存中不被釋放,能夠用來保存變量;
  • 由於閉包占用的內存不被釋放,因此應該避免濫用閉包

閉包參考網址:https://www.jianshu.com/p/a2dd93e2d195java

ajax:ajax

  • 異步的javascript和XML;
  • 用來實現網頁中局部內容的更新;
  • 先後臺作數據交互的工具;

ajax的使用:json

使用參考網址:https://www.jianshu.com/p/5c324a7726d3緩存

①實現get獲取數據
       1-建立請求對象
       var ajax = new XMLHttpRequest();
       2-設置請求參數
       ajax.open(method,url,是否異步);
       ajax.open('get','data.txt?count=10',true);
       3-發送請求
       ajax.send();
       4-監聽請求狀態變化
           //ajax.readyState 請求狀態碼  
           // 0 : 建立了請求對象
           // 1 : 調用了open
           // 2 : 調用了send
           // 3 : 返回了一部份內容
           // 4 : 徹底響應完成

           //ajax.status 響應狀態碼
           // 1XX: 響應正在處理當中
           // 2XX: 200 成功找到
           // 3XX: 也是成功找到,可能進行重定向或者緩存中取到
           // 4XX: 404 沒有找到
           // 5XX: 502 服務器錯誤

       ajax.onreadystatechange = function(){
           if(ajax.readystate == 4 && ajax.status == 200){
               ajax.responseText; //響應的數據
           }
       }
② - post提交數據
      var ajax = new XMLHttpRequest();
      ajax.open('post', 'user/login');
     //post方法須要設置請求頭
      ajax.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    //發送的數據放在send方法裏面
    ajax.send('username=aaa&password=123');

    ajax.onreadystatechange = function () {
        if (ajax.readyState == 4 && ajax.status == 200) {
            console.log('成功')
        }
    }
eval() 方法 : 把字符串轉化成js代碼
    var  str = '1+2+3';
    var n = eval(str);
    console.log(n); // 6

JSON.parse() :把json格式的字符串傳化成對象
   var str = '{"name":"aaa","age":18}';
   str =  JSON.parse(str);
   console.log(str); // {name:'aaa',age:18}
相關文章
相關標籤/搜索