天天看點

總結阿裡p5 p6前端面試題,并一一解決

引用https://blog.csdn.net/shadothew/article/details/88562474

阿裡的應屆校招網申和内推在八月份開始,提前應該開始準備

2020 4.3

1.有三個元素,第一個與第三個寬度都為100px,中間元素占用剩餘空間,怎麼做到中間元素随着浏覽器寬度的變化而變化

<div class="b">2</div>
  <style>
    .b{
      background-color: black;
      position: absolute;
      left: 100px;
      right: 100px;
      width: auto;
      color: white;
      text-align: center;
    }
  </style>
           

2.講講box-sizing

content-box :正常狀态,border 和 padding 單獨占位,盒子總寬高是 設定寬高加上兩者之和

border-box  :邊框盒子  盒子總寬高為設定好寬高 ,border和padding 占用設定寬高的位置。

3.做項目有沒有遇到什麼坑

第一次做跨域請求,背景做攔截器接受資料報undefined,找了半天錯誤,結果發現開始接收的option請求,這個請求不帶資料。。

4.rem與em的差別

rem是根據根的font-size變化,em是根據父級的font-size變化

5.實作destructuringArray

// destructuringArray( [1,[2,4],3], "[a,[b],c]" )
// result
// { a:1, b:2, c:3 }
           
let destructuringArray = (arry1,string) => {
    string = string.replace(/\[/g,'')
    string = string.replace(/\]/g,'')
    string = string.split(',')
    let q = {}
    string.some((item,index) => {
      if(typeof arry1[index] === 'object'){
        let arr = Object.keys(arry1[index])
        q[item] = arry1[index][arr[0]]
      }
      else{
        q[item] = arry1[index]
      }
    })
    return q
  }
           

2020.4.8

1.一個元素随頁面的下滑而字型變小,如何減少監聽滑輪開銷,或者減少搜尋引擎搜尋時聯想詞的開銷

給一個閥值,大于這個閥值時執行一次函數。

2.原型鍊的了解

參照https://blog.csdn.net/singlever/article/details/105113968

3.閉包了解

通過執行一個函數a建立了另一個函數b,在a執行完後b執行完之前,a不會被銷毀,會和b一起成立一個閉包

4.出一個n,輸出包含n對括号的所有可能組合

let dds = (n) => {
    let cont = 0  //計數器
    cont += 1  //n個組的時候 ()()()() 有n/n = 1個
    cont += n-1  //n-1個組的時候 () 空出來一個随機添加到任何一個組内 就有n-1種可能

    for(let i = 1;i<=(n-3);i++){  //n-2個組的時候 ()() 空出來兩個,随機排列 有(n-3)+(n-4)+(n-5)+(n-(n-1))+0
      cont += i
    } 
    cont += (n-2)   //全包例如n=5 (()())()() 每個組能全部容納多出來的 是以有 n-2 種
    //後續我放棄了。。。。。
  }
           

5.   0-9和a-z分别表示36進制數的0-36,寫一個加法。

0-9a-z 36進制數
“1b", "2x" = "48"
"zzz", "1" = "1000"
           

沒看懂題

2020 5.18

1.apply和call的差別

參考

繼續閱讀