隨便寫點面試題(三)結束

13.數組的方法
var myMap = new Map();  map 返回形式爲 [key,value]
fliter   返回的是 刪除的數組 改變原數組  

reducer 函數接收4個參數:  
      1.Accumulator (acc) (累計器)
2.Current Value (cur) (當前值)
3.Current Index (idx) (當前索引)
4.Source Array (src) (源數組)
用法 arr.reduce(callback[, initialValue])
new Set([iterable]);   Set中的元素只會出現一次,即 Set 中的元素是唯一的。
shift() 刪下標爲0的那個元素
pop() 刪最後一個元素
 indexof() 獲取下標


slice很強大的數組方法,它有很多種用法,可以實現刪除、插入和替換。
刪除:可以刪除任意數量的項,只需指定 2 個參數:要刪除的第一項的位置和要刪除的項數。例如, splice(0,2)會刪除數組中的前兩項。
插入:可以向指定位置插入任意數量的項,只需提供 3 個參數:起始位置、 0(要刪除的項數)和要插入的項。例如,splice(2,0,4,6)會從當前數組的位置 2 開始插入4和6。
替換:可以向指定位置插入任意數量的項,且同時刪除任意數量的項,只需指定 3 個參數:起始位置、要刪除的項數和要插入的任意數量的項。插入的項數不必與刪除的項數相等。例如,splice (2,1,4,6)會刪除當前數組位置 2 的項,然後再從位置 2 開始插入4和6。
splice()方法始終都會返回一個數組,該數組中包含從原始數組中刪除的項,如果沒有刪除任何項,則返回一個空數組。 

14.es6 用過哪些 實際舉例

15.兩個數組怎麼拼接在一起
1、concat
var c = a.concat(b)

2.for循環
for(var i in b){
  a.push(b[i]);
}

3.apply
a.push.apply(a,b);


16.項目上線的問題

17.登錄怎麼知道登錄了 不會再一次請求
登錄的時候服務器端給前端一個令牌(token),後面用戶所有的操作都要帶token去驗證是否是登錄狀態 
18.axios  看下攔截器 導航守衛
首先,在vue-cli項目的src路徑下新建一個axios文件夾,在axios文件夾裏新建api.js和request.js,api.js用於寫接口,對axios的封裝寫在request.js裏,項目機構如圖:

然後開始統一封裝axios, 首先引入axios、qs依賴,引入main.js主要是用於後面對接口進行統一處理,比如調接口的時候,顯示loading等。這個main.js根據你個人情況,可加可不加。

然後創建一個axios實例,這個process.env.BASE_URL在config/dev.evn.js、prod.evn.js裏面進行配置:

axios實例創建好之後,開始使用request攔截器對axios請求配置做統一處理,具體如下:


然後是對response做統一處理,代碼如下:


最後,將我們的axios實例暴露出去,整個axios的封裝就寫完了。


實現深拷貝的方法
1、使用遞歸的方式實現深拷貝
//使用遞歸的方式實現數組、對象的深拷貝
function deepClone1(obj) {
  //判斷拷貝的要進行深拷貝的是數組還是對象,是數組的話進行數組拷貝,對象的話進行對象拷貝
  var objClone = Array.isArray(obj) ? [] : {};
  //進行深拷貝的不能爲空,並且是對象或者是
  if (obj && typeof obj === "object") {
    for (key in obj) {
      if (obj.hasOwnProperty(key)) {
        if (obj[key] && typeof obj[key] === "object") {
          objClone[key] = deepClone1(obj[key]);
        } else {
          objClone[key] = obj[key];
        }
      }
    }
  }
  return objClone;
}
*2、通過 JSON 對象實現深拷貝**
//通過js的內置對象JSON來進行數組對象的深拷貝
function deepClone2(obj) {
  var _obj = JSON.stringify(obj),
    objClone = JSON.parse(_obj);
  return objClone;
3、通過jQuery的extend方法實現深拷貝
var array = [1,2,3,4];
var newArray = $.extend(true,[],array);

13、閉包有哪些缺點?有哪些優點?
閉包是有權訪問另一個函數私有變量的函數叫閉包;
優點:避免變量污染、加強了封裝性,邏輯性比較強代碼的可讀性高;加載到內存中執行效率高;
缺點:在內存中,造成了內存浪費,如果濫用閉包是災難性的;

 

什麼是BFC?
BFC:塊級格式化上下文,它是指一個獨立的塊級渲染區域,它決定了元素如何對其內容進行定位,以及與其他元素的關係和相互作用。在進行盒子元素佈局的時候,BFC提供了一個環境,在這個環境中按照一定規則進行佈局不會影響到其它環境中的佈局。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章