閉包、立即執(zhí)行函數(shù)閉包欠痴、BOM

題目1: 下面的代碼輸出多少迄靠?修改代碼讓 fnArr[i]()輸出i。使用 兩種以上的方法

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

改寫1

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

改寫2

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

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

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

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

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

輸出

1//var a = 1;執(zhí)行后跳過setTimeout掌挚,執(zhí)行var a ;console.log(a);
3//執(zhí)行a = 3;console.log(a);
2//js執(zhí)行完全部代碼后處理定時(shí)器,
    function(){
      a = 2;
      console.log(a);
    }, 0)菩咨,0秒后輸出console.log(a)(a=2)

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

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

無法輸出吠式,因?yàn)閟etTimeout計(jì)時(shí)器會(huì)在執(zhí)行完全部代碼后處理,while(flag){}中flag為true抽米,造成死循環(huán)特占。

題目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);
}
//輸出結(jié)果
0
1
2
3
4
"delayer:5"
"delayer:5"
"delayer:5"
"delayer:5"
"delayer:5"
//輸出delayer: 0, delayer:1...
for(var i=0;i<5;i++){
    (function(i){
      setTimeout(function(){
         console.log('delayer:' + i );
    }, 0)})(i);
    console.log(i);
}

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

var $ = document.querySelector("view");
var h = $.offsetHeight;  //高度
var w = $.offsetWidth;  //寬度

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

  • URL常用編碼方法
    encodeURIComponent(string) 函數(shù)可對(duì)string其中的某些字符將被十六進(jìn)制的轉(zhuǎn)義序列進(jìn)行替換。
    說明:該方法不會(huì)對(duì) ASCII 字母和數(shù)字進(jìn)行編碼标捺,也不會(huì)對(duì)這些 ASCII 標(biāo)點(diǎn)符號(hào)進(jìn)行編碼: - _ . ! ~ * ' ( )
var str = '你好'
console.log(encodeURIComponent(str))//%E4%BD%A0%E5%A5%BD
  • URL常用解碼方法
    decodeURIComponent() 函數(shù)可對(duì) encodeURIComponent() 函數(shù)編碼的 URI 進(jìn)行解碼
var str = '%E4%BD%A0%E5%A5%BD'
console.log(decodeURIComponent(str))//你好

  • Url需要進(jìn)行編碼懊纳,是因?yàn)閁rl中有些字符會(huì)引起歧義网持。
  • Url的編碼格式采用的是ASCII碼,而不是Unicode长踊,這也就是說你不能在Url中包含任何非ASCII字符,例如中文萍倡。

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

function isAndroid(){
/android/gi.test(window.navigator.userAgent)
}
funcnction isIphone(){
/iphone/gi.test(window.navigator.userAgent)
}
function isIpad(){
/ipad/gi.test(window.navigator.userAgent)
}
function isIOS(){
/(iphone)|(ipad)/gi.test(window.navigator.userAgent)
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市列敲,隨后出現(xiàn)的幾起案子阱佛,更是在濱河造成了極大的恐慌,老刑警劉巖戴而,帶你破解...
    沈念sama閱讀 223,002評(píng)論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凑术,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡所意,警方通過查閱死者的電腦和手機(jī)淮逊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扶踊,“玉大人泄鹏,你說我怎么就攤上這事⊙砗模” “怎么了备籽?”我有些...
    開封第一講書人閱讀 169,787評(píng)論 0 365
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)分井。 經(jīng)常有香客問我车猬,道長(zhǎng),這世上最難降的妖魔是什么尺锚? 我笑而不...
    開封第一講書人閱讀 60,237評(píng)論 1 300
  • 正文 為了忘掉前任珠闰,我火速辦了婚禮,結(jié)果婚禮上缩麸,老公的妹妹穿的比我還像新娘铸磅。我一直安慰自己,他們只是感情好杭朱,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,237評(píng)論 6 398
  • 文/花漫 我一把揭開白布阅仔。 她就那樣靜靜地躺著,像睡著了一般弧械。 火紅的嫁衣襯著肌膚如雪八酒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,821評(píng)論 1 314
  • 那天刃唐,我揣著相機(jī)與錄音羞迷,去河邊找鬼界轩。 笑死,一個(gè)胖子當(dāng)著我的面吹牛衔瓮,可吹牛的內(nèi)容都是我干的浊猾。 我是一名探鬼主播,決...
    沈念sama閱讀 41,236評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼热鞍,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼葫慎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起薇宠,我...
    開封第一講書人閱讀 40,196評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤偷办,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后澄港,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體椒涯,經(jīng)...
    沈念sama閱讀 46,716評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,794評(píng)論 3 343
  • 正文 我和宋清朗相戀三年回梧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了废岂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,928評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡漂辐,死狀恐怖泪喊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情髓涯,我是刑警寧澤袒啼,帶...
    沈念sama閱讀 36,583評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站纬纪,受9級(jí)特大地震影響蚓再,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜包各,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,264評(píng)論 3 336
  • 文/蒙蒙 一摘仅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧问畅,春花似錦娃属、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至卵皂,卻和暖如春秩铆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工殴玛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捅膘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,378評(píng)論 3 379
  • 正文 我出身青樓滚粟,卻偏偏與公主長(zhǎng)得像寻仗,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子凡壤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,937評(píng)論 2 361

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

  • 題目1: 下面的代碼輸出多少愧沟?修改代碼讓 fnArri 輸出 i。使用 兩種以上的方法 方法一: 方法二: 方法三...
    南山碼農(nóng)閱讀 286評(píng)論 0 1
  • 題目1: 下面的代碼輸出多少鲤遥?修改代碼讓 fnArri 輸出 i。使用 兩種以上的方法 輸出10 修改為1var ...
    我是一只_魚閱讀 211評(píng)論 0 1
  • 題目1: 下面的代碼輸出多少林艘?修改代碼讓 fnArr[i]() 輸出 i盖奈。使用 兩種以上的方法 題目2: 封裝一個(gè)...
    Taaaaaaaurus閱讀 349評(píng)論 0 0
  • 題目1: 下面的代碼輸出多少?修改代碼讓 fnArr[i]() 輸出 i狐援。使用 兩種以上的方法 var fnArr...
    saintkl閱讀 364評(píng)論 0 0
  • 某日钢坦,與一位在商場(chǎng)十分得意的朋友在世界貿(mào)易大樓頂層共進(jìn)晚餐,看著下面萬家燈火啥酱,車水馬龍爹凹,他感慨地說:人生就像這車馬...
    未央ZP閱讀 309評(píng)論 0 0