js

1.for of和for in區(qū)別

for in: 一般用于遍歷對(duì)象的可枚舉屬性乐设。以及對(duì)象從構(gòu)造函數(shù)原型中繼承的屬性。對(duì)于每個(gè)不同的屬性断凶,語(yǔ)句都會(huì)被執(zhí)行伤提。

  1. 使用for in會(huì)遍歷數(shù)組所有的可枚舉屬性,包括原型认烁。例如原型方法method和name屬性肿男。
  2. for in遍歷的是數(shù)組的索引(即鍵名)介汹,而for of遍歷的是數(shù)組元素值。
  3. for of遍歷的只是數(shù)組內(nèi)的元素舶沛,而不包括數(shù)組的原型屬性method和索引name

for..of適用遍歷數(shù)/數(shù)組對(duì)象/字符串/map/set等擁有Symbol.iterator 屬性的數(shù)據(jù).但是不能遍歷對(duì)象,因?yàn)椴痪哂?iterator接口,

事件模型

  1. 事件捕獲和事件冒泡
  2. 事件冒泡:事件會(huì)從最內(nèi)層的元素開始發(fā)生嘹承,一直向上傳播,直到document對(duì)象如庭。
    事件捕獲:事件從最外層開始發(fā)生叹卷,直到最具體的元素。
  3. 通過(guò)addEventerListener()的第三個(gè)參數(shù)來(lái)設(shè)置事件是通過(guò)捕獲階段注冊(cè)的(true),還是冒泡階段注冊(cè)的(false),默認(rèn)情況下是false坪它。
  4. e.stopPropagation() e.preventDefault()

漸進(jìn)增強(qiáng)骤竹、優(yōu)雅降級(jí)(向上兼容和向下兼容)

  1. 漸進(jìn)增強(qiáng)(Progressive Enhancement):一開始就針對(duì)低版本瀏覽器進(jìn)行構(gòu)建頁(yè)面,完成基本的功能往毡,然后再針對(duì)高級(jí)瀏覽器進(jìn)行效果蒙揣、交互、追加功能達(dá)到更好的體驗(yàn)开瞭。
    優(yōu)雅降級(jí)(Graceful Degradation):一開始就構(gòu)建站點(diǎn)的完整功能懒震,然后針對(duì)瀏覽器測(cè)試和修復(fù)。比如一開始使用 CSS3 的特性構(gòu)建了一個(gè)應(yīng)用嗤详,然后逐步針對(duì)各大瀏覽器進(jìn)行 hack 使其可以在低版本瀏覽器上正常瀏覽个扰。

js異步加載

js默認(rèn)加載是同步加載(阻塞加載),會(huì)影響后續(xù)頁(yè)面渲染葱色。

  1. defer s腳本在所有元素加載完成后執(zhí)行递宅,而且是按照js腳本聲明的順序執(zhí)行
  2. async sync只適用于外部引用的腳本,js腳本是亂序執(zhí)行的冬筒,不管你聲明的順序如何恐锣,只要某個(gè)js腳本加載完就立即執(zhí)行。
  3. 動(dòng)態(tài)生成script標(biāo)簽舞痰,在js里創(chuàng)建script標(biāo)簽,插入DOM中诀姚,加載完成后callback响牛,所有的js腳本都會(huì)在onload事件后才加載

this問(wèn)題(根據(jù)執(zhí)行上下文理解)

this指向執(zhí)行環(huán)境

  • 默認(rèn)綁定時(shí)this指向全局對(duì)象,在嚴(yán)格模式環(huán)境中赫段,默認(rèn)綁定的this指向undefined
  • 如果函數(shù)調(diào)用前存在多個(gè)對(duì)象呀打,this指向距離調(diào)用自己最近的對(duì)象
  • 通過(guò)call、apply以及bind方法改變this的行為
  • 箭頭函數(shù)的this指向取決于外層作用域中的this糯笙,外層作用域或函數(shù)的this指向誰(shuí)贬丛,箭頭函數(shù)中的this便指向誰(shuí)

執(zhí)行上下文

  • JS執(zhí)行上下文的創(chuàng)建階段主要負(fù)責(zé)三件事:確定this---創(chuàng)建詞法環(huán)境組件---創(chuàng)建變量環(huán)境組件(this,作用域與變量對(duì)象)
  • 詞法環(huán)境由環(huán)境記錄與對(duì)外部環(huán)境引入記錄(變量對(duì)象给涕,作用域鏈)
  • 詞法環(huán)境用于存儲(chǔ)函數(shù)聲明與let const聲明的變量豺憔,而變量環(huán)境僅僅存儲(chǔ)var聲明的變量额获。
  • 在執(zhí)行上下文創(chuàng)建階段,函數(shù)聲明與var聲明的變量在創(chuàng)建階段已經(jīng)被賦予了一個(gè)值恭应,var聲明被設(shè)置為了undefined抄邀,函數(shù)被設(shè)置為了自身函數(shù),而let const被設(shè)置為未初始化昼榛。(變量提升與函數(shù)聲明提前)
  • 變量對(duì)象是與執(zhí)行上下文相關(guān)的數(shù)據(jù)作用域境肾,存儲(chǔ)了在上下文中定義的變量和函數(shù)聲明。而在函數(shù)上下文中胆屿,我們用活動(dòng)對(duì)象(activation object, AO)來(lái)表示變量對(duì)象奥喻。

fetch

首先f(wàn)etch是原生js的實(shí)現(xiàn)方案,與ajax并無(wú)關(guān)系非迹,你可以把它當(dāng)成XMLHttpRequest的一種更理想的替代方案环鲤,
ajax對(duì)比,fetch主要有三點(diǎn)不同:

  1. 當(dāng)接收一個(gè)表示錯(cuò)誤的http狀態(tài)碼時(shí)彻秆,fetch的promise不會(huì)被標(biāo)記為rejecte楔绞,反而是resolve(但是會(huì)將resolve的ok屬性設(shè)為false),只有網(wǎng)絡(luò)故障唇兑,請(qǐng)求被阻止這種情況才會(huì)被標(biāo)記reject酒朵。
  2. fetch可以接受跨域cookies,你也可以使用fetch創(chuàng)建跨域請(qǐng)求扎附。
  3. fetch默認(rèn)不會(huì)發(fā)送cookies蔫耽,除非我們通過(guò)前面的init對(duì)象修改了初始化配置。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末留夜,一起剝皮案震驚了整個(gè)濱河市匙铡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌碍粥,老刑警劉巖鳖眼,帶你破解...
    沈念sama閱讀 211,348評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異嚼摩,居然都是意外死亡钦讳,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門枕面,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)愿卒,“玉大人,你說(shuō)我怎么就攤上這事潮秘∏砜” “怎么了?”我有些...
    開封第一講書人閱讀 156,936評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵枕荞,是天一觀的道長(zhǎng)柜候。 經(jīng)常有香客問(wèn)我搞动,道長(zhǎng),這世上最難降的妖魔是什么改橘? 我笑而不...
    開封第一講書人閱讀 56,427評(píng)論 1 283
  • 正文 為了忘掉前任滋尉,我火速辦了婚禮,結(jié)果婚禮上飞主,老公的妹妹穿的比我還像新娘狮惜。我一直安慰自己,他們只是感情好碌识,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評(píng)論 6 385
  • 文/花漫 我一把揭開白布碾篡。 她就那樣靜靜地躺著,像睡著了一般筏餐。 火紅的嫁衣襯著肌膚如雪开泽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,785評(píng)論 1 290
  • 那天魁瞪,我揣著相機(jī)與錄音穆律,去河邊找鬼。 笑死导俘,一個(gè)胖子當(dāng)著我的面吹牛峦耘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播旅薄,決...
    沈念sama閱讀 38,931評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼辅髓,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了少梁?” 一聲冷哼從身側(cè)響起洛口,我...
    開封第一講書人閱讀 37,696評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎凯沪,沒想到半個(gè)月后第焰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體覆致,經(jīng)...
    沈念sama閱讀 44,141評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡于樟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評(píng)論 2 327
  • 正文 我和宋清朗相戀三年岔擂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了撩荣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,625評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡品追,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情液荸,我是刑警寧澤,帶...
    沈念sama閱讀 34,291評(píng)論 4 329
  • 正文 年R本政府宣布脱篙,位于F島的核電站娇钱,受9級(jí)特大地震影響伤柄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜文搂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評(píng)論 3 312
  • 文/蒙蒙 一适刀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧煤蹭,春花似錦笔喉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至稽物,卻和暖如春奄毡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背贝或。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工吼过, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人咪奖。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓盗忱,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親赡艰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子售淡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評(píng)論 2 348