撩課-Web大前端每天5道面試題-Day13

1.for循環(huán)中的作用域問題?


寫出以下代碼輸出值顾彰,嘗試用es5和es6的方式進行改進輸出循環(huán)中的i值捅膘。
for (var i=1; i<=5; i++) { 
    setTimeout(function timer() { 
       console.log(i); 
    }, i*1000); 
}

輸出5個6,因為回調(diào)函數(shù)在for循環(huán)之后執(zhí)行扫责,所有函數(shù)共享一個i的引用。
es5:

for (var i=1; i<=5; i++) { 
    (function(j) { 
        setTimeout(function timer() { 
            console.log(j); 
        }, j*1000); 
    })(i); 
}

es6:

for (let i=1; i<=5; i++) { 
    setTimeout(function timer() { 
        console.log(i);
    }, i*1000); 
}

2.重繪和回流?


重繪:當頁面中元素樣式的改變并不影響它在文檔流中的位置時
(例如:color益愈、background-color挺据、visibility等)吉嫩,瀏覽器會將新樣式賦予給元素并重新繪制它磨隘,這個過程稱為重繪缤底。
回流:當Render Tree(DOM)中部分或全部元素的尺寸、結構番捂、或某些屬性發(fā)生改變時个唧,瀏覽器重新渲染部分或全部文檔的過程稱為回流。
回流要比重繪消耗性能開支更大设预。
回流必將引起重繪徙歼,重繪不一定會引起回流。

3.原型及原型鏈?

原型的理解:

  所有的引用類型(數(shù)組絮缅、對象鲁沥、函數(shù))呼股,都具有對象特性耕魄,即可自由擴展屬性(null除外)
  所有的引用類型(數(shù)組、對象彭谁、函數(shù))吸奴,都有一個__proto__屬性,屬性值是一個普通的對象
  所有的函數(shù),都有一個prototype屬性则奥,屬性值也是一個普通的對象
  所有的引用類型(數(shù)組考润、對象、函數(shù))读处,__proto__屬性值指向它的構造函數(shù)的prototype屬性值

原型鏈的理解
代碼如下:
// 構造函數(shù)
function Foo(name, age) {
    this.name = name
}
Foo.prototype.alertName = function () {
    alert(this.name)
}
// 創(chuàng)建示例
var f = new Foo('zhangsan')
f.printName = function () {
    console.log(this.name)
}
// 測試
f.printName()
f.alertName()
f.toString()
因為f本身沒有toString()糊治,并且f.__proto__(即Foo.prototype)中也沒有toString。
當試圖得到一個對象的某個屬性時罚舱,如果這個對象本身沒有這個屬性井辜,那么會去它的__proto__(即它的構造函數(shù)的prototype)中尋找。
如果在f.__proto__中沒有找到toString管闷,那么就繼續(xù)去f.__proto__.__proto__中尋找粥脚,因為f.__proto__就是一個普通的對象而已嘛!
f.__proto__即Foo.prototype包个,沒有找到toString刷允,繼續(xù)往上找
f.__proto__.__proto__即Foo.prototype.__proto__。
Foo.prototype就是一個普通的對象碧囊,因此Foo.prototype.__proto__就是Object.prototype树灶,在這里可以找到toString。
因此f.toString最終對應到了Object.prototype.toString
這樣一直往上找糯而,你會發(fā)現(xiàn)是一個鏈式的結構破托,所以叫做“原型鏈”。
如果一直找到最上層都沒有找到歧蒋,那么就宣告失敗土砂,返回undefined。最上層是什么 —— Object.prototype.__proto__ === null

4.js浮點數(shù)運算精度問題(0.1+0.2!==0.3,比如在 JavaScript 中計算 0.1 + 0.2時谜洽,到底發(fā)生了什么呢萝映?

首先,十進制的0.1和0.2都會被轉換成二進制阐虚,但由于浮點數(shù)用二進制表達時是無窮的序臂,例如。
JavaScript 代碼:
0.1 -> 0.0001100110011001...(無限)
0.2 -> 0.0011001100110011...(無限)
IEEE 754 標準的 64 位雙精度浮點數(shù)的小數(shù)部分最多支持 53 位二進制位实束,所以兩者相加之后得到二進制為:
JavaScript 代碼:
0.0100110011001100110011001100110011001100110011001100
因浮點數(shù)小數(shù)位的限制而截斷的二進制數(shù)字奥秆,再轉換為十進制,就成了 0.30000000000000004咸灿。所以在進行算術計算時會產(chǎn)生誤差构订。

5.說說HTTP method分別有哪些,他們各自做了哪些事情?

1.一臺服務器要與HTTP1.1兼容,只要為資源實現(xiàn)GET和HEAD方法即可避矢。

2.GET是最常用的方法悼瘾,通常用于請求服務器發(fā)送某個資源囊榜。

3.HEAD與GET類似,但服務器在響應中值返回首部亥宿,不返回實體的主體部分卸勺。

4.PUT讓服務器用請求的主體部分來創(chuàng)建一個由所請求的URL命名的新文檔,
或者烫扼,如果那個URL已經(jīng)存在的話曙求,就用干這個主體替代它。

5.POST起初是用來向服務器輸入數(shù)據(jù)的映企。實際上圆到,通常會用它來支持HTML的表單。
表單中填好的數(shù)據(jù)通常會被送給服務器卑吭,然后由服務器將其發(fā)送到要去的地方芽淡。

6.TRACE會在目的服務器端發(fā)起一個環(huán)回診斷,
最后一站的服務器會彈回一個TRACE響應并在響應主體中攜帶它收到的原始請求報文豆赏。
TRACE方法主要用于診斷挣菲,用于驗證請求是否如愿穿過了請求/響應鏈。

7.OPTIONS方法請求web服務器告知其支持的各種功能掷邦。
可以查詢服務器支持哪些方法或者對某些特殊資源支持哪些方法白胀。

8.DELETE請求服務器刪除請求URL指定的資源。
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末抚岗,一起剝皮案震驚了整個濱河市或杠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宣蔚,老刑警劉巖向抢,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異胚委,居然都是意外死亡挟鸠,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門亩冬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來艘希,“玉大人,你說我怎么就攤上這事硅急「蚕恚” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵营袜,是天一觀的道長撒顿。 經(jīng)常有香客問我,道長连茧,這世上最難降的妖魔是什么核蘸? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮啸驯,結果婚禮上客扎,老公的妹妹穿的比我還像新娘。我一直安慰自己罚斗,他們只是感情好徙鱼,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著针姿,像睡著了一般袱吆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上距淫,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天绞绒,我揣著相機與錄音,去河邊找鬼榕暇。 笑死蓬衡,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的彤枢。 我是一名探鬼主播狰晚,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼缴啡!你這毒婦竟也來了壁晒?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤业栅,失蹤者是張志新(化名)和其女友劉穎秒咐,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體碘裕,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡反镇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了娘汞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片歹茶。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖你弦,靈堂內(nèi)的尸體忽然破棺而出惊豺,到底是詐尸還是另有隱情,我是刑警寧澤禽作,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布尸昧,位于F島的核電站,受9級特大地震影響旷偿,放射性物質(zhì)發(fā)生泄漏烹俗。R本人自食惡果不足惜爆侣,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望幢妄。 院中可真熱鬧兔仰,春花似錦、人聲如沸蕉鸳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽潮尝。三九已至榕吼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間勉失,已是汗流浹背羹蚣。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乱凿,地道東北人度宦。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像告匠,于是被迫代替她去往敵國和親戈抄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

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

  • JavaScript語言精粹 前言 約定:=> 表示參考相關文章或書籍; JS是JavaScript的縮寫后专。 本書...
    微笑的AK47閱讀 581評論 0 3
  • 里氏替換 子類可以擴展父類的功能划鸽,但不能改變父類原有的功能當使用繼承時,遵循里氏替換原則戚哎。類B繼承類A時裸诽,除添加新...
    lotusve_w閱讀 108評論 0 0
  • 今天要跟大家講的主題是“空心病”丈冬,這個主題來自我們一位學員的建議,十分切合現(xiàn)在年輕人的狀況甘畅。 說到“空心病”埂蕊,很多...
    琉璃君莫笑閱讀 3,728評論 31 110
  • 五年前蓄氧,一首《梵高先生》,讓李志迅速走紅槐脏。那時喉童,他坐在街頭,看梧桐葉一片片落下顿天,看人們來來往往堂氯,正試圖用這首《梵高...
    山谷牧歌閱讀 1,287評論 0 3
  • 去年公公婆婆按照例常9月來川蔑担,老公早早就給公婆定了軟臥的火車票。他覺得10個小時的車程咽白,睡得舒服點他心里會好受些啤握。...
    小鹿故事集閱讀 265評論 0 1