閉包_定時(shí)器_BOM

題目1: 下面的代碼輸出多少忧饭?修改代碼讓fnArri 輸出 i。使用兩種以上的方法

    var fnArr = [];
    for (var i = 0; i < 10; i ++) {
        fnArr[i] =  function(){
            return i;
        };
    }
    console.log( fnArr[3]() );  //10
//方法一
var fnArr1 = [];
for (var i=0;i<10;i++){
    (function (i) {
        fnArr1[i] = function () {
            return i;
        };
    })(i)
}
//方法二
var fnArr2 = [];
for (var i=0;i<10;i++){
    fnArr2[i] = (function (i) {
        return function () {
            return i;
        };
    })(i)
}

題目2: 封裝一個(gè)汽車對(duì)象古拴,可以通過(guò)如下方式獲取汽車狀態(tài)

var Car = (function(){
   var speed = 0;
   function setSpeed(s){
       speed = s
   }
   ...
   return {
      setSpeed: setSpeed,
      ...
   }
})()
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
var Car = (function get(){
    var speed;
    function setSpeed(n){
        speed = n;
    }
    function getSpeed() {
        console.log(speed);
    }
    function accelerate() {
        speed += 10;
    }
    function decelerate() {
        speed -= 10;
    }
    function getStatus() {
        if (speed > 0){
            console.log('running');
        }
        else
            if (speed === 0){
            console.log('stop');
        }
    }
    return {
        setSpeed : setSpeed,
        getSpeed : getSpeed,
        accelerate : accelerate,
        decelerate : decelerate,
        getStatus : getStatus
    };
})();

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

var a = 1;
setTimeout(function(){
    a = 2;
    console.log(a);//2
}, 0);
var a ;
console.log(a);//1
a = 3;
console.log(a);//3

第二個(gè)輸出1,因?yàn)榇a順序執(zhí)行,在遇到setTimeout時(shí),雖然延遲執(zhí)行時(shí)間為0,但仍然會(huì)被放到程序最后執(zhí)行,所以聲明變量a = 1;第二個(gè)輸出1.
第三個(gè)輸出3,因?yàn)閍被重新賦值為3,所以輸出3.
第一個(gè)輸出2,被放在程序最后執(zhí)行,a被重新賦值為2,所以輸出2
題目4: 下面這段代碼輸出結(jié)果是? 為什么?

var flag = true;
setTimeout(function(){
    flag = false;
},0)
while(flag){}
console.log(flag);

程序陷入死循環(huán),賦值flag為true,setTimeout被放到程序最后執(zhí)行,緊接著執(zhí)行while(flag){},因?yàn)閒lag一直是true,所以陷入死循環(huán),永遠(yuǎn)不會(huì)執(zhí)行setTimeout.
題目5: 下面這段代碼輸出紊撕?如何輸出delayer: 0, delayer:1...(使用閉包來(lái)實(shí)現(xiàn))

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

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

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

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

let myURL = 'https://www.google.com/#q=javascript';
//如果我們想編碼一個(gè)URL并且可以使用它(訪問)涕烧,使用encodeURI();
let simpleURL = encodeURI(myURL); //"https://www.google.com/#q=javascript"
//如果我們想編碼一個(gè)URL并且可以將其放置在某URL的參數(shù)中月而,使用encodeURIComponent();
let completeURL = encodeURIComponent(myURL);
let newURL = 'https://www.google.com/?back=' + completeURL; //"https://www.google.com/?    back=https%3A%2F%2Fwww.google.com%2F%23q%3Djavascript"
window.open(simpleURL); //將會(huì)打開一個(gè)窗口,地址為https://www.google.com/#q=javascript

題目8: 補(bǔ)全如下函數(shù)议纯,判斷用戶的瀏覽器類型

function isAndroid(){
}
funcnction isIphone(){
}
function isIpad(){
}
function isIOS(){
}
function isAndroid(){
  return /Android/i.test(navigator.userAgent);
}
funcnction isIphone(){
  return /iPhone/i.test(navigator.userAgent);
}
function isIpad(){
  return /iPad/i.test(navigator.userAgent);
}
function isIOS(){
  return /(iPad)|(iPhone)/i.test(navigator.userAgent);
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末父款,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子瞻凤,更是在濱河造成了極大的恐慌憨攒,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阀参,死亡現(xiàn)場(chǎng)離奇詭異肝集,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)蛛壳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門包晰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人炕吸,你說(shuō)我怎么就攤上這事伐憾。” “怎么了赫模?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵树肃,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我瀑罗,道長(zhǎng)胸嘴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任斩祭,我火速辦了婚禮劣像,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘摧玫。我一直安慰自己耳奕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著屋群,像睡著了一般闸婴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上芍躏,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天邪乍,我揣著相機(jī)與錄音,去河邊找鬼对竣。 笑死庇楞,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的否纬。 我是一名探鬼主播姐刁,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼烦味!你這毒婦竟也來(lái)了聂使?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤谬俄,失蹤者是張志新(化名)和其女友劉穎柏靶,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體溃论,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡屎蜓,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钥勋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炬转。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖算灸,靈堂內(nèi)的尸體忽然破棺而出扼劈,到底是詐尸還是另有隱情,我是刑警寧澤菲驴,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布荐吵,位于F島的核電站,受9級(jí)特大地震影響赊瞬,放射性物質(zhì)發(fā)生泄漏先煎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一巧涧、第九天 我趴在偏房一處隱蔽的房頂上張望薯蝎。 院中可真熱鬧,春花似錦谤绳、人聲如沸占锯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)烟央。三九已至统诺,卻和暖如春歪脏,著一層夾襖步出監(jiān)牢的瞬間疑俭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工婿失, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钞艇,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓豪硅,卻偏偏與公主長(zhǎng)得像哩照,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子懒浮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

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

  • 題目1: 下面的代碼輸出多少飘弧?修改代碼讓 fnArri 輸出 i。使用 兩種以上的方法 輸出10 修改為1var ...
    我是一只_魚閱讀 211評(píng)論 0 1
  • 題目1: 下面的代碼輸出多少砚著?修改代碼讓 fnArr[i]() 輸出 i次伶。使用 兩種以上的方法 var fnArr...
    saintkl閱讀 364評(píng)論 0 0
  • 1: 下面的代碼輸出多少?修改代碼讓 fnArri 輸出 i稽穆。使用 兩種以上的方法 輸出結(jié)果為10冠王,因?yàn)閞etur...
    DeeJay_Y閱讀 358評(píng)論 0 0
  • 題目1: 下面的代碼輸出多少?修改代碼讓fnArri 輸出 i舌镶。使用兩種以上的方法 題目2: 封裝一個(gè)汽車對(duì)象柱彻,可...
    饑人谷_桶飯閱讀 399評(píng)論 0 0
  • 五十年代的人是比較純潔的,六十年代的人是十分狂熱的餐胀,七十年代的人是相當(dāng)膽怯的哟楷,八十年代的人是察言觀色的,九十年代的...
    李艷超_Harry閱讀 775評(píng)論 0 2