1. 程式人生 > >2019.02.19前端面試五家後總結

2019.02.19前端面試五家後總結

rip try esc 目的 銷毀 上市公司 2.7 循環 配置

為了測試過去的一年的成長,出去面試五家公司(3家創業saas公司,一家上市公司,一家跨境電商),

新的一年,要繼續鞭策自己成長。

前端面試註意幾個方面:

1. 溝通能力

2. 基礎知識深度

3. 解決問題的實際能力

4. 知識邊界

1. 溝通能力:

對問題的視角闡述是否準確容易理解。

2. 基礎知識深度知識點考察:

2.1 執行上下文:

  執行上下文分為二個階段(編譯階段,執行階段)

 (1)編譯階段包括:變量對象(vo),作用域鏈的確定,this指向的確定。

  變量對象的組成: 1.創建arguments 》2.檢查函數的聲明並創建屬性 》 3檢測var聲明並為創建屬性賦值為undefined,遇到相同的屬性跳過

  編譯階段的變量對象的屬性是不可訪問的,只有等到執行階段才能訪問。

  

 (2)執行階段包括:變量的賦值,函數的引用,其他代碼的執行。

  活動對象(ao)和變量對象(vo)的區別:都是相同的東西,只是處於執行上下文的不同的生命周期,活動對象處於執行階段在當前函數調用棧的棧頂。  

     

2.2 閉包:

  什麽是閉包?

  閉包的用途?

  閉包和匿名函數的區別?

2.3 模塊化:

  es6的module和common.js以及amd,cmd模塊化的區別?

2.4 vue生命周期:

  創建前後(el掛載點用不了),掛載前後(el,data都能使用),更新前後(虛擬dom的算法),銷毀前後(銷毀後鉤子函數不起作用)

  父子組件的怎麽傳值?

  嵌套路由怎麽實現?

  vuex怎麽使用,由哪些組成,action是幹什麽的,與mutation區別?

2.5 異步的promise,async,await:

  怎麽避免回調地獄?

  promise是什麽?有哪些狀態?

  事件循環的同步,異步,微任務,宏任務的區別?

  async返回什麽?

  await在等待什麽?

  await在等待到結果後又要做什麽?

2.6 http1.0,1.1,2.0的協議,請求響應報文,三次握手

  短鏈接和長鏈接的區別?

  connection的keep-alive是什麽?

  http2.0的特點,怎麽理解多路復用?

  請求和響應報文的組成?

  輸入一個url後發生什麽(url是否有緩存》dns解析url為ip》tcp連接,三次握手》服務端的響應》瀏覽器的渲染》繪畫》顯示)

  強制緩存和協商緩存理解?

2.7 使用axios怎麽解決跨域問題?

  proxyTable的原理?

  http-proxy-middle中間件?

2.8 webpack配置問題

  你的項目的entry有多少個?

  webpack-merge了解嗎?

  是否使用過對象存儲來處理圖像?

  聽過數據萬象嗎?

  怎麽優化多頁面的打包速度?

2.9 面向對象的問題

  es6類的靜態成員和動態成員的區別?

  重點考察多態和類型的設計,比如說mixin和decorator

2.10 基礎函數的考察

  map,reduce,filter,forEach, every, some

  splice,slice,parseInt,concat,join

  [‘1‘,‘2‘,‘3‘],map(parseInt) 為什麽是 [1 ,NAN, NAN]?

2.11 基礎的算法

  冒泡,快速,插入,歸並算法,回文,數組去重

  什麽是鏈表?

  如何實現一個hash算法?

  歸並排序的復雜度?

2.12 前端常見的設計模式

2.13 進程和線程的區別,什麽是線程同步?

3 解決問題的能力

  • 組件接口的設計(比如設計一個表單組件/picker) 基於react或者vue
  • 針對項目業務邏輯提具體的問題(比如怎麽維持app用戶的登錄狀態)
  • 具體的工具(webpack,gulp,git)考察具體的知識點,怎麽解決沖突
  • 前端方向的把握,nodejs和typescript的學習情況

2019.02.19前端面試五家後總結