前端面試知識點


html



css



JS


  • js的基本類型有哪些?引用類型有哪些?引用類型和基本類型有什么區別?哪個是存在堆哪一個是存在棧上面的?
    空值(null)、
    未定義(undefined)、
    布爾值(boolean)、
    數字(number)、
    字符串(string)、
    對象(object)、
    符號(symbol,ES6中新增)

https://www.cnblogs.com/cxying93/p/6106469.html
https://www.zhihu.com/question/349080864

// 主要用于檢測引用類型(左邊是對象,右邊是函數.根據對象的原形鏈往上找,如果原形鏈上有右邊函數.prototype,返回true;否則返回false)
var obj = {}; obj instanceof Object; //=> true; 
var arr = []; arr instanceof Array; //=> true;
var fn = function() {}; fn instanceof Function; //=> true;

hasOwnProperty() obj對象自身屬性中是否具有某個屬性
isPrototypeOf()

// 用于測試一個對象是否存在于另一個對象的原型鏈上。在obj對象原型鏈上搜尋
    function VFrank() {}
    VFrank.prototype.name = "vfrank";
    VFrank.prototype.age = 29;
    VFrank.prototype.job = "Web Engineer";
    var person = new VFrank();
    console.log(VFrank.prototype.isPrototypeOf(person));// true

ES6



框架


  • 簡述 vue 工作流程

/**
* 1 數據劫持 2 編譯模板
* 1 數據劫持 就是 Object.defineProperty 方法,他有get set 方法,get取數據 set設置數據 更新數據了會重新編譯數據模板
* 2 編譯作用是把 vue 模板轉為 瀏覽器的dom展示在頁面上,主要做的那就是把模板上綁定的事件轉化為一個個監聽器,監視用戶的動作,執行updata 方法
* 3 獲取接口 重置 data時 就觸發 數據劫持的set 方法, set 方法調用 監聽器的 update 方法
* 4 頁面用戶輸入 操作時 觸發對應的事件,事件有對應的監聽器 可以調用 監聽器的 update 方法更新數據
*/

  • 什么是MVVM,MVC,MVP
  • mvc(agular)
    1 用戶輸入動作(指令),
    2 指令觸發,調用相應的函數方法邏輯,更改數據
    3 數據更改后,通過某種方法(這里是臟治檢測)告訴視圖更新
  • mvvm(vue)
    就是通過某種方法使 視圖(view) 和 數據(model) 建立聯系(這里是通過js Object.defineProperty(), 方法建立雙向關系)
    view 改變通知vm ,然后vm 改變 model
    model 改變通知vm, 然后vm 改變 view
    https://blog.csdn.net/spring5530/article/details/65982198

https://blog.csdn.net/weixin_45213848/article/details/93231307
https://www.cnblogs.com/yiyiyurou/p/9881156.html

  • data 為啥是函數 不是對象
    第13個問題

  • angluar vue的區別
    http://www.lxweimin.com/p/7b7b195e0297

  • vue 和原生的區別

  • vuex 優勢
    統一公共屬性方法 方便維護
    只提供單一的更改屬性的方法 保證維護 溯源的方便(要是多個更改方法會難以維護 溯源)

  • 處理跨域

    開發環境 用熱更新插件 配置 地址 node 代理
    生產環境 ngix 配置
    cors 配置

  • 兄弟a b組件之間,點擊a組件 出發b的函數

a 觸發 this.$emit 給父組件,父組件 用ref.子組件的方法

EventBus.$on(channel: string, callback(payload1,…))

EventBus.$off(channel, {})

https://www.qy.cn/jszx/detail/3822.html


前端優化


  • 防抖 節流
防抖:  規定一個期限時間,在首次觸發事件時,不立即執行回調函數,而是在期限時間后再執行,如果期限時間內回調函數被重復執行,則期限時間重新計時。(100ms 內執行10次,按最后一次的的時間,在延時執行,函數執行需要 一段時間)
節流: 一段時間只執行一次,執行多次按最后一次計算(100ms 內執行10次,只執行最后一次)

http://www.lxweimin.com/p/3b782abd27ed


babel


https://www.jiangruitao.com/babel/quick-start/


移動端


  • 移動端 1px 像素
// border
:after{
      content: '';
      position: absolute;
      left: 0;
      bottom: 0;
      background: #cccccc;
      width: 100%;
      height: 1px;
      -webkit-transform: scaleY(0.5);
      transform: scaleY(0.5);
      -webkit-transform-origin: 0 0;
      transform-origin: 0 0;
    }
// 按鈕邊框
:after{
      content: '';
      position: absolute;
      left: 0;
      top: 0;
      border: 1px solid #cccccc;
      border-radius: 26px;
      width: 200%;
      height: 200%;
      -webkit-transform: scale(0.5);
      transform: scale(0.5);
      -webkit-transform-origin: left top;
      transform-origin: left top;
    }

參考

  • 移動端rem適配
(function (doc, win) {
  // 以蘋果6 375px為標準  1rem為10px
  var docEl = doc.documentElement
  var resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'
  var recalc = function () {
    var clientWidth = docEl.clientWidth
    if (!clientWidth) return
    docEl.style.fontSize = 2 * (clientWidth / 75) + 'px'
  }
  if (!doc.addEventListener) return
  win.addEventListener(resizeEvt, recalc, false)
  doc.addEventListener('DOMContentLoaded', recalc, false)
})(document, window)

  • 300 毫秒的點擊延時
const str = navigator.userAgent.toLowerCase()
const ver = str.match(/cpu iphone os (.*?) like mac os/)
if (!ver) { // 非IOS系統
  // 引入fastclick 做相關處理
  document.addEventListener('DOMContentLoaded', function () {
    FastClick.attach(document.body)
  }, false)
} else {
// 蘋果版本 11 以上已經處理了延時
  if (parseInt(ver[1]) < 11) {
    // 引入fastclick 做相關處理
    document.addEventListener('DOMContentLoaded', function () {
      FastClick.attach(document.body)
    }, false)
  }
}
  • 輸入框不回彈處理、
      setTimeout(() => {
        window.scrollTo(0, document.body.scrollTop + 1)
        document.body.scrollTop >= 1 && window.scrollTo(0, document.body.scrollTop - 1)
      }, 10)
// routerjs
const router = createRouter({
  // https://cli.vuejs.org/zh/config/#publicpath
  base: '/www/', // 這個是服務器的訪問路徑配置
  ...
  routes
})
export default router

// vue.config.js
module.exports = {
  // 安卓不能訪問 帶 # 號的url 改成 history模式了
  // 參考 https://www.cnblogs.com/tugenhua0707/p/8127466.html
  publicPath: process.env.NODE_ENV === 'develop' ? '/' : '/www/',
...
}

http



算法



面試題



打包工具


代碼管理

--

職業規劃



http://www.cnblogs.com/lvshaonan/p/8693301.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,818評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,185評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,656評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,647評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,446評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,951評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,041評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,189評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,718評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,602評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,800評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,045評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,419評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,420評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,755評論 2 371

推薦閱讀更多精彩內容