閉包

1峻呕、下面的代碼輸出多少利职?修改代碼讓 fnArri 輸出 i趣效。使用 兩種以上的方法

    var fnArr = [];
    for (var i = 0; i < 10; i ++) {
        fnArr[i] =  function(){
            return i;
        };
    }
    console.log( fnArr[3]() );  //輸出10瘦癌,執(zhí)行的時(shí)候i等于10,所以整個數(shù)組元素執(zhí)行后都會是10

修改后

    var fnArr = [];
    for (let i = 0; i < 10; i ++) {
        fnArr[i] =  function(){
            return i;
        };
    }
    var fnArr = [];
    for (var i = 0; i < 10; i ++) {
        (function(i){
            fnArr[i] =  function(){
                 return i;
                }
      })(i)
  }    
    var fnArr = [];
    for (var i = 0; i < 10; i ++) {
         fnArr[i] = (function(i){
            return  function(){
                 return i
                }
      })(i)
  }

2跷敬、封裝一個汽車對象讯私,可以通過如下方式獲取汽車狀態(tài)

var Car = (function(){
   var speed = 0;
   function setSpeed(s){
       return speed = s
   }
   function getSpeed(){
       return speed
   }
   function accelerate(){
       return speed += 10
   }
   function decelerate(){
       return (speed > 10)?(speed -= 10):0
   }
   function getStatus(){
        return speed>0?'running':'stop';
    }
   return {
      "setSpeed"   : setSpeed,
       "getSpeed"   : getSpeed,
       "accelerate" : accelerate,
       "decelerate" : decelerate,
       "getStatus"  : getStatus
   }
})()
Car.setSpeed(30);
Car.getSpeed(); //30
Car.accelerate();
Car.getSpeed(); //40;
Car.decelerate();
Car.decelerate();
Car.getSpeed(); //20
Car.getStatus(); // 'running';
Car.decelerate(); 
Car.decelerate();
Car.getStatus();  //'stop';
//Car.speed;  //error

3、下面這段代碼輸出結(jié)果是? 為什么?

var a = 1;
setTimeout(function(){
    a = 2;
    console.log(a);
}, 0);
var a ;
console.log(a);
a = 3;
console.log(a);  // 1,3,2    setTimeout是在js代碼塊執(zhí)行完之后延遲執(zhí)行西傀,所以最后輸出2.

4斤寇、下面這段代碼輸出結(jié)果是? 為什么?

var flag = true;
setTimeout(function(){
    flag = false;                         //setTimeout會等其余的執(zhí)行完畢后在執(zhí)行
},0)
while(flag){}                             //flag一直是true,無限循環(huán)
console.log(flag);                    //不會執(zhí)行

5拥褂、下面這段代碼輸出娘锁?如何輸出delayer: 0, delayer:1...(使用閉包來實(shí)現(xiàn))

for(var i=0;i<5;i++){
    setTimeout(function(){
         console.log('delayer:' + i );
    }, 0);
    console.log(i);
}  //  5個  delayer:5 
修改后
for(var i=0;i<5;i++){
    (function(i){
        return setTimeout(function(){
                      console.log('delayer:' + i );
                }, 0);
    }(i))
   console.log(i);
}

6、 如何獲取元素的真實(shí)寬高

function trueStyle(element){
        //IE不支持window.getComputedStyle()饺鹃,支持element.currentStyle();
    return element.currentStyle ? element.currentStyle : window.getComputedStyle(element,null);
}
let trueWidth = trueStyle(element).width;
let trueHeight = trueStyle(element).height;

7莫秆、URL 如何編碼解碼?為什么要編碼悔详?

encodeURI被用作對一個完整的URL進(jìn)行編碼镊屎,而encodeURIComponent被用作對URL的一個組成部分進(jìn)行編碼。
對于Url來說茄螃,之所以要進(jìn)行編碼缝驳,是因?yàn)閁RL中有些字符會引起歧義。例如归苍,URL參數(shù)字符串中使用key=value鍵值對這樣的形式來傳參用狱,鍵值對之間以&符號分隔,如/s?q=abc&ie=utf-8拼弃。如果你的value字符串中包含了=或者&夏伊,那么勢必會造成接收URL的服務(wù)器解析錯誤,因此必須將引起歧義的&和=符號進(jìn)行編碼肴敛。"; / ? : @ & = + $ , #"署海,這些在encodeURI()中不被編碼的符號,在encodeURIComponent()中統(tǒng)統(tǒng)會被編碼医男。

8砸狞、補(bǔ)全如下函數(shù),判斷用戶的瀏覽器類型

function isAndroid(){
    return /Android/.test(navigator.userAgent);
}
funcnction isIphone(){
    return /iPhone/.test(navigator.userAgent);
}
function isIpad(){
    return /iPad/.test(navigator.userAgent);
}
function isIOS(){
    return /(iPad|iPhone)/i.test(navigator.userAgent);
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末镀梭,一起剝皮案震驚了整個濱河市刀森,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌报账,老刑警劉巖研底,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件埠偿,死亡現(xiàn)場離奇詭異,居然都是意外死亡榜晦,警方通過查閱死者的電腦和手機(jī)冠蒋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乾胶,“玉大人抖剿,你說我怎么就攤上這事∈读” “怎么了斩郎?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長喻频。 經(jīng)常有香客問我缩宜,道長,這世上最難降的妖魔是什么甥温? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任锻煌,我火速辦了婚禮,結(jié)果婚禮上窿侈,老公的妹妹穿的比我還像新娘炼幔。我一直安慰自己,他們只是感情好史简,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布乃秀。 她就那樣靜靜地躺著,像睡著了一般圆兵。 火紅的嫁衣襯著肌膚如雪跺讯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天殉农,我揣著相機(jī)與錄音刀脏,去河邊找鬼。 笑死超凳,一個胖子當(dāng)著我的面吹牛愈污,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播轮傍,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼暂雹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了创夜?” 一聲冷哼從身側(cè)響起杭跪,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后涧尿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體系奉,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年姑廉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了缺亮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡庄蹋,死狀恐怖瞬内,靈堂內(nèi)的尸體忽然破棺而出迷雪,到底是詐尸還是另有隱情限书,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布章咧,位于F島的核電站倦西,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏赁严。R本人自食惡果不足惜扰柠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望疼约。 院中可真熱鬧卤档,春花似錦、人聲如沸程剥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽织鲸。三九已至舔腾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間搂擦,已是汗流浹背稳诚。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瀑踢,地道東北人扳还。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像橱夭,于是被迫代替她去往敵國和親氨距。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容