進階-任務11

題目1:

輸出10

// 1
var fnArr = [];
    for (var i = 0; i < 10; i ++) {
        (function(j) {
            fnArr[i] = function() {
                return j;
            }
        })(i)
    }
    console.log( fnArr[3]() );
// 2
    var fnArr = [];
    for (var i = 0; i < 10; i ++) {
        fnArr[i] = (function(j) {
            return function() {
                return j;
            }   
        })(i)
    }
    console.log( fnArr[3]() );
// 3
    var fnArr = [];
    for (let i = 0; i < 10; i ++) {
        fnArr[i] = function() {
            return i;
        }
    }
    console.log( fnArr[3]() );

題目2

var Car = (function(){
  var speed = 0;
  function setSpeed(s){
    speed = s
  }
  function getSpeed() {
    return speed;
  }
  function accelerate() {
    speed += 10;
  }
  function decelerate() {
    speed = (speed >=10) ? speed-10 : 0;
  }
  function getStatus() {
    if(speed > 0) {
      return 'running';
    }else {
      return 'stop';
    }
  }
  function checkSpeed() {
    if(speed === 0) {
      return 'error';
    }else {
      return speed;
    }
  }
  return {
  setSpeed: setSpeed,
  getSpeed: getSpeed,
  accelerate: accelerate,
  decelerate: decelerate,
  getStatus: getStatus,
  speed: checkSpeed()
  }
})()

題目3

輸出1,3,2
定時器中的函數(shù)會被自動放到隊尾執(zhí)行,所以會先依順序輸出1和3,再執(zhí)行定時器中的函數(shù),輸出2

題目4

會無限循環(huán)
定時器中的函數(shù)被自動放到隊尾執(zhí)行,所以首先執(zhí)行while(flag)語句,此時flag=true,所以會無限循環(huán)

題目5

會輸出0,1,2,3,4和5個delayer:5

for(var i=0;i<5;i++){
  (function(j){
    setTimeout(function(){
         console.log('delayer:' + j );
      }, 0);
  })(i)
    console.log(i);
}

題目6 如何獲取元素的真實寬高

var height = window.getComputedStyle(elem,null).getPropertyValue('height')

題目7 URL 如何編碼解碼?為什么要編碼?

  • JavaScript提供四個URL的編碼/解碼方法
encodeURI()
encodeURIComponent()
decodeURI()
decodeURIComponent()

encodeURI()著眼于對整個URL進行編碼,因此除了常見的符號以外,對其他一些在網(wǎng)址中有特殊含義的符號"; / ? : @ & = + $ , #",也不進行編碼。編碼后,它輸出符號的utf-8形式,并且在每個字節(jié)前加上%。
encodeURIComponent()只轉(zhuǎn)除了語義字符之外的字符,元字符也會被轉(zhuǎn)義。因此,它的參數(shù)通常是URL的路徑或參數(shù)值,而不是整個URL。

  • 為什么要編碼?
    1.URL只能使用英文字母、阿拉伯數(shù)字和某些標點符號,不能使用其他文字和符號。這意味著,如果URL中有漢字,就必須編碼后使用。
    2.URL參數(shù)字符串中使用key=value鍵值對這樣的形式來傳參,鍵值對之間以&符號分隔,如/s?q=abc&ie=utf-8。如果你的value字符串中包含了=或者&,那么勢必會造成接收Url的服務器解析錯誤,因此必須將引起歧義的&和=符號進行轉(zhuǎn)義,也就是對其進行編碼。

題目8

var service = window.navigator.userAgent;
function isAndroid(){
  return /android/i.test(service);
}
funcnction isIphone(){
  return /iphone/i.test(service);
}
function isIpad(){
  return /ipad/i.test(service);
}
function isIOS(){
  return /iphone|ipad/i.test(service);
}
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 下面的代碼輸出多少?修改代碼讓 fnArri 輸出 i。使用兩種以上的方法 以上代碼輸出為10 修改后代碼一: 修...
    RookieD閱讀 221評論 0 0
  • 1- 算出代碼的輸出值;修改代碼讓 fnArri 輸出 i 結果:輸出 10,因為循環(huán)的時候 fnArr[i] =...
    osborne閱讀 210評論 0 0
  • 導讀:這個問題發(fā)布在Ouora,發(fā)起人是一個46歲的程序員,他由于個人的原因,有8年的時間沒有編程。他希望有人能告...
    IT范兒閱讀 590評論 0 5
  • 無論哪個季節(jié),無論身在何方,縈繞游子心頭和腦海的,總有那故鄉(xiāng)的裊裊炊煙和潺潺溪水,總有那故鄉(xiāng)的籬笆矮墻和柴垛灶炕,...
    420_c644閱讀 1,515評論 5 45

友情鏈接更多精彩內(nèi)容