<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          美團(tuán)-前端開發(fā)面經(jīng)(十二)

          共 4123字,需瀏覽 9分鐘

           ·

          2021-04-22 18:00

          點(diǎn)擊上方藍(lán)字關(guān)注我們




          get和post的區(qū)別





          一、功能不同

          1、get是從服務(wù)器上獲取數(shù)據(jù)。

          2、post是向服務(wù)器傳送數(shù)據(jù)。 


          二、過程不同

          1、get是把參數(shù)數(shù)據(jù)隊(duì)列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個(gè)字段一一對(duì)應(yīng),在URL中可以看到。

          2、post是通過HTTP post機(jī)制,將表單內(nèi)各個(gè)字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個(gè)過程。 


          三、獲取值不同

          1、對(duì)于get方式,服務(wù)器端用Request.QueryString獲取變量的值。

          2、對(duì)于post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。 


          四、傳送數(shù)據(jù)量不同

          1、get傳送的數(shù)據(jù)量較小,不能大于2KB。

          2、post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。 


          五、安全性不同

          1、get安全性非常低。

          2、post安全性較高。 

          如果沒有加密,他們安全級(jí)別都是一樣的,隨便一個(gè)監(jiān)聽器都可以把所有的數(shù)據(jù)監(jiān)聽到。







          onload、DOMReady 的區(qū)別





          document.ready和onload的區(qū)別為:加載程度不同、執(zhí)行次數(shù)不同、執(zhí)行速度不同。

          一、加載程度不同

          1.document.ready:在DOM加載完成后就可以可以對(duì)DOM進(jìn)行操作。一般情況一個(gè)頁面響應(yīng)加載的順序是,域名解析-加載html-加載js和css-加載圖片等其他信息。那么Dom Ready應(yīng)該在“加載js和css”和“加載圖片等其他信息”之間,就可以操作Dom了。

          2.onload:在document文檔加載完成后就可以可以對(duì)DOM進(jìn)行操作,document文檔包括了加載圖片等其他信息。那么Dom Load就是在頁面響應(yīng)加載的順序中的“加載圖片等其他信息”之后,就可以操作Dom了。


          二、執(zhí)行次數(shù)不同

          1.document.ready:document.ready可以寫多個(gè).ready,可以執(zhí)行多次,第N次都不會(huì)被上一次覆蓋。

          2.onload:onload只能執(zhí)行一次,如果有多個(gè),那么第一次的執(zhí)行會(huì)被覆蓋。


          三、執(zhí)行速度不同

          1.document.ready:onload除了要等待DOM被創(chuàng)建還要等到包括大型圖片、音頻、視頻在內(nèi)的所有外部資源都完全加載。如果加載圖片和媒體內(nèi)容花費(fèi)了大量時(shí)間,用戶就會(huì)感受到定義在onload事件上的代碼在執(zhí)行時(shí)有明顯的延遲。

          2.onload:document.ready函數(shù)只需對(duì) DOM 樹的等待,而無需對(duì)圖像或外部資源加載的等待,從而執(zhí)行起來更快。







          key有什么作用?index當(dāng)作key





          1.Vue 中的 key 到底有什么用?

            1.兩個(gè)相同的組件產(chǎn)生類似的DOM結(jié)構(gòu),不同的組件產(chǎn)生不同的DOM結(jié)構(gòu)。

            2.同一層級(jí)的一組節(jié)點(diǎn),他們可以通過唯一的id進(jìn)行區(qū)分。


          key的作用主要是為了高效的更新虛擬DOM

          key 是給每一個(gè) vnode(javaScript對(duì)象) 的唯一 id,依靠 key,我們的 diff 操作可以更準(zhǔn)確、更快速 (對(duì)于簡(jiǎn)單列表頁渲染來說 diff 節(jié)點(diǎn)也更快。

          diff 算法的過程中,先會(huì)進(jìn)行新舊節(jié)點(diǎn)的首尾交叉對(duì)比,當(dāng)無法匹配的時(shí)候會(huì)用新節(jié)點(diǎn)的 key 與舊節(jié)點(diǎn)進(jìn)行比對(duì),從而找到相應(yīng)舊節(jié)點(diǎn)。

          更準(zhǔn)確 : 因?yàn)閹?key 就不是就地復(fù)用了,在 一些節(jié)點(diǎn)函數(shù)中 以 a.key === b.key 對(duì)比中可以避免就地復(fù)用的情況。所以會(huì)更加準(zhǔn)確,

          更快速 : key 的唯一性可以被 Map 數(shù)據(jù)結(jié)構(gòu)充分利用,相比于遍歷查找的時(shí)間復(fù)雜度 O(n),Map 的時(shí)間復(fù)雜度僅僅為 O(1),

          源碼如下:

              function createKeyToOldIdx(children, beginIdx, endIdx) {              let i, key;              const map = {};              for (i = beginIdx; i <= endIdx; ++i) {                  key = children[i].key;                  if (isDef(key)) map[key] = i;                }            return map;        }


          2.vue中使用v-for時(shí)為什么不能用index作為key?

          更新DOM的時(shí)候會(huì)出現(xiàn)性能問題

          會(huì)發(fā)生一些狀態(tài)bug

          React 中的 key 也是如此

          1)index作為key,其實(shí)就等于不加key

          2)index作為key,只適用于不依賴子組件狀態(tài)或臨時(shí) DOM 狀態(tài) (例如:表單輸入值) 的列表渲染輸出(這是vue官網(wǎng)的說明)

          說明:當(dāng)以數(shù)組的下標(biāo)index作為key值時(shí) 其中一個(gè)元素發(fā)生了變化 就有可能導(dǎo)致所有元素的key值發(fā)生改變 diff算法是比較同級(jí)之間的不同 以key來進(jìn)行關(guān)聯(lián) 當(dāng)對(duì)數(shù)組進(jìn)行下標(biāo)的變換時(shí),比如刪除第一條數(shù)據(jù),那么以后所有的Index都會(huì)發(fā)生改變,那么key自然也跟著全部發(fā)生改變, 所以index作為key值是不穩(wěn)定的,這種不穩(wěn)定性有可能導(dǎo)致性能的浪費(fèi) 導(dǎo)致diff無法關(guān)聯(lián)起上一次一樣的數(shù)據(jù) 因此 能不用Index作為key就不要用Index






          v-if/v-show的區(qū)別





          手段:v-if是動(dòng)態(tài)的向DOM樹內(nèi)添加或者刪除DOM元素;v-show是通過設(shè)置DOM元素的display樣式屬性控制顯隱

          編譯過程:v-if切換有一個(gè)局部編譯/卸載的過程,切換過程中合適地銷毀和重建內(nèi)部的事件監(jiān)聽和子組件;v-show只是簡(jiǎn)單的基于css切換

          編譯條件:v-if是惰性的,如果初始條件為假,則什么也不做;只有在條件第一次變?yōu)檎鏁r(shí)才開始局部編譯(編譯被緩存?編譯被緩存后,然后再切換的時(shí)候進(jìn)行局部卸載); v-show是在任何條件下(首次條件是否為真)都被編譯,然后被緩存,而且DOM元素保留

          性能消耗:v-if有更高的切換消耗;v-show有更高的初始渲染消耗

          使用場(chǎng)景:v-if適合運(yùn)營(yíng)條件不大可能改變;v-show適合頻繁切換

          相同點(diǎn):v-show 都可以動(dòng)態(tài)控制著dom元素的顯示隱藏

          不同點(diǎn):v-if 的顯示隱藏是將DOM元素整個(gè)添加或刪除,v-show 的顯示隱藏是為DOM元素添加css的樣式display,設(shè)置none或者是block,DOM元素是還存在的

          在渲染多個(gè)元素的時(shí)候,可以把一個(gè) 元素作為包裝元素,并使用v-if 進(jìn)行條件判斷,最終的渲染不會(huì)包含這個(gè)元素,v-show是不支持 語法






          Flex布局





          Flex 是 Flexible Box 的縮寫,意為"彈性布局",用來為盒狀模型提供最大的靈活性。何一個(gè)容器都可以被設(shè)定為Flex布局,容器分為兩種塊Flex和行內(nèi)Flex。

          Flex布局有兩層,采用Flex布局的元素稱為flex容器,其子元素則自動(dòng)成為flex item,即flex項(xiàng)目。

          注意:設(shè)定為Flex布局之后,子元素的float,clear和vertical-align都會(huì)失效。


          Flex容器屬性

          容器默認(rèn)存在兩根軸:水平方向的主軸(main axis)和垂直方向的交叉軸(cross axis),主軸的開始位置叫做main start,結(jié)束位置叫做main end。交叉軸的開始位置叫做cross start,結(jié)束位置叫做cross end。


          容器的6個(gè)屬性:


          1.flex-direction屬性

          flex-direction屬性決定主軸的方向(即項(xiàng)目的排列方向)。

          .flex-box {

            flex-direction: row | row-reverse | column | column-reverse;

          }


          2.flex-wrap屬性

          默認(rèn)情況下,項(xiàng)目都排在一條線(又稱"軸線")上。flex-wrap屬性定義,如果一條軸線排不下時(shí),如何換行。

          .flex-box {

            flex-wrap: nowrap | wrap | wrap-reverse;

          }


          3.flex-flow屬性

          flex-flow屬性是flex-direction屬性和flex-wrap屬性的簡(jiǎn)寫形式,默認(rèn)值為row nowrap。

          .flex-box {

            flex-flow: <flex-direction> || <flex-wrap>;

          }


          4.justify-content屬性

          justify-content屬性定義了項(xiàng)目在主軸上的對(duì)齊方式。

          .flex-box {

           justify-content: flex-start | flex-end | center | space-between | space-around;

          }


          5.align-items屬性

          align-items屬性定義項(xiàng)目在交叉軸上如何對(duì)齊。

          .flex-box {

           align-items: flex-start | flex-end | center | baseline | stretch;

          }


          6.align-content屬性

          align-content屬性定義了多根軸線的對(duì)齊方式。如果項(xiàng)目只有一根軸線,該屬性不起作用。

          .flex-box {

           align-content: flex-start | flex-end | center | space-between | space-around | stretch;

          }










          往期精彩




          百度-前端開發(fā)面經(jīng)(一)
          網(wǎng)易有道-前端開發(fā)面經(jīng)(一)
          阿里-前端開發(fā)面經(jīng)(一)


           掃碼二維碼

          獲取更多面經(jīng)

          扶遙就業(yè)


          瀏覽 28
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  大香蕉色婷婷 | 九一香蕉 | 成人AⅤ天堂 | 久久久久成人精品无码 | 日韩中文字幕高清无码视频 |