<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [toc] # 題1、什么是閉包? 答:在一個函數中返回一個函數就會形成一個閉包。 在閉包的外層函數中定義的變量會被這個閉包保護起來,所以其實我們使用閉包其實就是為了得到一個 `能夠被保護起來的全局變量` 。 閉包中這個變量的特點:1. 受保護(只要被閉包中的代碼修改) 2. 長駐內存(不會像普通的局部變量一樣,用完就銷毀了) 所以閉包變量即有全局變量的優點(隨處可用并且長駐內存)又有局部變量的優點(只能在函數內使用) 應用場景: 1. 維護一個全局的自增 ID(如果使用全局變量,有可能會出現被誤操作,而使用了閉包,就可以確保ID不會被外部誤操作,而且只能進行+1操作) 2. 緩存一些數據也可以使用閉包(比使用全局變量好,可以避免被誤操作) ~~~ // 自增 id 的閉包(好處1. 不會被閉包修改 好處2:只能進行+1操作) function id(){ let id = 1 // 閉包變量 return function() { return id++ } } // 當我們需要 ID 時就使用閉包 let id= id() console.log( id() ) // 1 console.log( id()) // 2 console.log( id()) // 3 ~~~ # 題2、eval 是干什么用的? 答:是 JS 中的一個函數,用途:把一個字符串當做 JS 代碼來執行。 ~~~ const str = "var age = 100;" // 把 str 字符串解析成 JS 代碼并執行 eval(str) // 相當于執行了 var age = 100 這行代碼 console.log( age ) // 100 ~~~ # 題3、正則表達式中的 g 代表什么? 答:g:全局匹配:匹配所有滿足條件的字符。 ~~~ let a = 'a3232fafda32' a.replace(/\d/, '*') // a*232fafda32 a.replace(/\d/g, '*') // a****fafda** (全局匹配) ~~~ # 題4、HTTP 請求有哪些?用過哪些? HTTP協議中規定在請求一個資源(網頁、圖片、音樂、JS、CSS等)時,使用的請求方法:共8種: GET:獲取數據。 POST:新增。 DELETE:刪除。 PUT:修改 .... 示例: ~~~ // 規范(不是強制)的用法:比如:http://api.abc.com/users GET http://api.abc.com/users?page=1&pagesize=20 :獲取用戶信息(參數在URL后) POST http://api.abc.com/users:添加一個用戶,(數據在 body 中傳遞) DELETE http://api.abc.com/users?id=1:刪除一個用戶(參數在URL后臺) PUT http://api.abc.com/users?id=2 :修改一個用戶(參數在URGL和BODY中傳,URL中傳ID,body 中保存數據) ~~~ # 題5、HTTP常用的狀態碼? 2XX 成功: 200(成功) 201(創建成功) 3XX 重定向: 301(永久重定向) 302(臨時重定向) 4XX 客戶端錯誤 :400(請求時參數錯誤) 401(未登錄) 403(無權限-超級管理員-會計等) 404(服務器上沒有這個資源) 5XX 服務器錯誤 : 500(服務器錯誤-后臺代碼出錯) # 題6、實戰? 有一個數組,數組a中有100個元素,數組b中有10個元素,數組b中保存的是a中的10個元素 的下標,現在要從A中把b中這10個下標刪除掉怎么寫? 注意點:當從a中刪除一個元素之后,后面元素的下標就變了。 答:因為刪除一個元素時,后面的元素會向前移,導致下標改變,所以我們應該從后向前刪除,具體做是先將B數組倒序(大的在前)(所以在刪除時先刪除大(從后開始刪除)的)排列然后再循環調用a數組的 splice方法 刪除。 ~~~ var a = [1,2,3,32,5,34,3.....] var b = [3,7,2,4,9,56,43,23,12,32] b.sort((a,b)=>b-a) b.forEach(v=>{ a.splice(v, 1) }) ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看