簡單整理了一下最近遇到的一些面試題-面試進行中

整理了一下最近面試遇到的題css

CSS

一、div 水平垂直居中
/* 定位 */
  position: absolute;
  top: 50%;
  left: 50;
  transform: translate(-50%, 50%);
  /* flex 佈局 */
  display: flex;
  justify-content: center;
  align-items: center;
複製代碼
二、css 盒模型
  • box-sizing: content-box; (標準模型)

width = contentvue

  • box-sizing: border-box; (IE盒模型)

width = content + padding + bordernode

三、inline 和 inline-block 的區別
  • inline 只能設置左右 margin、padding, 不能設置 width 和 height
  • inline-block 生成一個塊級別框,可是框的行爲跟內聯元素同樣
四、css 中使用過哪些圖片替換方法,如何選擇使用
五、link 跟 @import 的區別
  • link 是 HTML 提供的標籤
  • link 引用的 css 會同時被加載,而 import 引用的 css 會等到頁面所有被下載完後再加載
  • import 老版本瀏覽器不支持
  • DOM可控性區別:沒法使用 dom 方法插入樣式
六、css 樣式優先級

內聯樣式 > ID 選擇器 > 類選擇器 = 屬性選擇器 = 僞類選擇器 > 標籤選擇器 = 僞元素選擇器webpack

JS

一、async/await 跟 promise 的區別
  • Promise 代碼徹底都是 Promise 的 API (then、catch 等)
  • async/await 是 Generator 函數的語法糖
二、閉包的特性合優缺點
  • 什麼是閉包?

閉包就是可以讀取其餘函數內部變量的函數 (來源: blog.csdn.net/yingziziziz…)nginx

  • 優勢

讀取函數內部的變量 讓局部變量保存在內存中,實現變量數據共享git

  • 缺點
  • 因爲閉包會使得函數中的變量都被保存在內存中,內存消耗很大,因此不能濫用閉包,不然會形成網頁的性能問題,在IE中可能致使內存泄露。解決方法是,在退出函數以前,將不使用的局部變量所有刪除
  • 閉包會在父函數外部,改變父函數內部變量的值。因此,若是你把父函數看成對象(object)使用,把閉包看成它的公用方法(Public Method),把內部變量看成它的私有屬性(private value),這時必定要當心,不要隨便改變父函數內部變量的值。
  • 來源: www.jianshu.com/p/8376170fb…
三、原型、原型鏈,有什麼特色

關於原型其實文章仍是蠻多的,看着也有點迷糊 segmentfault.com/a/119000000…web

四、如何判斷對象類型

typeof、 instanceof 看 www.jianshu.com/p/5be700ee6…面試

五、宿主對象和原生對象的區別
  • 原生對象: Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError、Global
  • 宿主對象: 有宿主提供的對象,在瀏覽器中window對象以及其下邊全部的子對象(如bom、dom等等),在node中是globla及其子對象,也包含自定義的類對象。【何爲「宿主對象」? 在web中,ECMAScript中的「宿主」固然就是咱們網頁的運行環境,即「操做系統」和「瀏覽器」。全部非本地對象都是宿主對象(host object),即由 ECMAScript 實現的宿主環境提供的對象。】
六、call 和 apply 的區別
  • .call(this, arg1, arg2, arg3)
  • .apply(this, arguments)
七、什麼是閉包
八、解釋 js 的 同源策略, 如何實現跨域訪問
  • 同源:

若是兩個頁面擁有 相同 的 協議(protocol),端口(若是指定),和 主機,那麼這兩個頁面就屬於同一個源(origin)。 (協議、域名、端口)算法

  • 跨域
  • jsonp
  • iframe
  • 跨域資源共享(CORS)
  • nginx 代理跨域
九、== 和 === 的區別

看: blog.csdn.net/chenchunlin…json

十、數組方法 pop, push, unshift, shift
  • pop: 刪除數組最後一個元素,返回刪除的那個元素
  • push: 往數組結尾添加元素
  • shift: 刪除數組第一個元素,返回該元素
  • unshift: 往數組前添加元素
十一、事件委託是什麼

事件委託就是利用冒泡的原理,把事件加到父元素或祖先元素上,觸發執行效果。

優勢: 提升性能,顯著提升事件處理速度,減小內存佔用

var btn6 = document.getElementById("btn6");
document.onclick = function(event){
  event = event || window.event;
  var target = event.target || event.srcElement;
  if(target == btn6){
    alert(btn5.value);
  }
}
複製代碼
十二、split()、join() 的區別
1三、例舉 3 種強制類型轉換和 2 種隱式類型轉換
1四、js 的原始類型和引用類型有哪些

Undefined、Null、Boolean、String、Number、Symbol、Object

1五、1.toString() 會輸出什麼
  • 1.toString() => 報錯
  • 1..toString() => "1"
  • 1.0.toString() => "1"
1六、什麼是回調函數?有哪些缺點?如何解決回調地獄?
  • 在JavaScript中,回調函數具體的定義爲:函數A做爲參數(函數引用)傳遞到另外一個函數B中,而且這個函數B執行函數A。咱們就說函數A叫作回調函數。若是沒有名稱(函數表達式),就叫作匿名回調函數。所以callback 不必定用於異步,通常同步(阻塞)的場景下也常常用到回調,好比要求執行某些操做後執行回調函數。
  • 如何解決回調地獄
    • 保持代碼簡短
    • 模塊化
    • 處理每個錯誤
1七、如何實現一個可設置過時時間的 localStorage

VUE

一、vue 常見報錯
二、父組件經過 props 給子組件傳值,子組件可否修改該值,會有什麼影響

作了個小測試,看: note.youdao.com/noteshare?i…

三、vue 雙向數據綁定原理

juejin.im/entry/59239…

四、v-if 和 v-show 指令有什麼相同和不一樣

v-if 直接從 dom 樹上刪除或重建元素節點, v-show 只是修改 display 的值 v-if 高消耗,不適合作頻繁切換

五、 有什麼做用

keep-alive 是 Vue 內置的一個組件,可使被包含的組件保留狀態,或避免從新渲染

六、簡述 vue 裏面的虛擬 dom

算法

假設你正在爬樓梯,須要 n 步你才能到達頂部,但每次你只能爬一步或者兩步,你能有多少種不一樣的方法爬到樓頂?

其它

項目部署流程
服務器部署項目常見錯誤,通常根據什麼來判斷
git 不經常使用的命令
什麼狀況下會遇到跨域,怎麼解決
webpack 的做用

看這篇吧 (什麼是WebPack,爲何要使用它) www.jianshu.com/p/d745b94ae…


後面陸續補充

感謝預覽,歡迎提意見、建議,謝謝!

  • 2019-03-27: 更新 css 六、 js 14-1七、vue 6
相關文章
相關標籤/搜索