他寫出了 Vue,卻作不對這十道 Vue 筆試題

 是新朋友嗎?記得先點web前端學習圈關注我哦~

請原諒我起了這麼個濃濃營銷號味道的標題。但這可絲毫沒有誇大宣傳,而是前端娛樂圈今日份的瓜——
前端

有十道關於 Vue 的選擇題,在羣裏引出了一衆社區知名人士競折腰,最後釣出了 Evan You 本人親自挑戰……vue

而後他本身也作錯了(其中的某兩道)。web

魯迅會作錯魯迅文選的閱讀理解?有截圖爲證:面試

因此,只要答對這十道題裏的九道以上,你就實打實地(在作題這個維度上)超越了尤大,比他更懂 Vue 了噢!是否是很心動?算法

其實要求都不用這麼高,只要作對六七道,就已經能夠吊打一羣小有名氣的社區選手了。vue-router

因此到底都是些什麼問題呢?你能夠點擊 [原題傳送門] 前往觀光,但爲了表示敬意,這裏特意手打了一遍搬運過來:shell

1. Vue 實例的 data 屬性,能夠在哪些生命週期中獲取到?A. beforeCreateB. createdC. beforeMountD. mounted  
2. 下列對 Vue 原理的敘述,哪些是正確的?A. Vue 中的數組變動通知,經過攔截數組操做方法而實現B. 編譯器目標是建立渲染函數,渲染函數執行後將獲得 VNode 樹C. 組件內 data 發生變化時會通知其對應 watcher,執行異步更新D. patching 算法首先進行同層級比較,可能執行的操做是節點的增長、刪除和更新
3. 對於 Vue 中響應式數據原理的說法,下列哪項是不正確的?A. 採用數據劫持方式,即 Object.defineProperty() 劫持 data 中各屬性,實現響應式數據B. 視圖中的變化會經過 watcher 更新 data 中的數據C. 若 data 中某屬性屢次發生變化,watcher 僅會進入更新隊列一次D. 經過編譯過程進行依賴收集
4. 下列說法不正確的是哪項?A. key 的做用主要是爲了高效地更新虛擬 DOMB. 若指定了組件的 template 選項,render 函數不會執行C. 使用 vm.$nextTick 能夠確保得到 DOM 異步更新的結果D. 若沒有 el 選項,vm.$mount(dom) 可將 Vue 實例掛載於指定元素上
5. 下列關於 Vuex 的描述,不正確的是哪項?A. Vuex 經過 Vue 實現響應式狀態,所以只能用於 VueB. Vuex 是一個狀態管理模式C. Vuex 主要用於多視圖間狀態全局共享與管理D. 在 Vuex 中改變狀態,能夠經過 mutations 和 actions
6. 關於 Vue 組件間的參數傳遞,下列哪項是不正確的?A. 若子組件給父組件傳值,可以使用 $emit 方法B. 祖孫組件之間可使用 provide 和 inject 方式跨層級相互傳值C. 若子組件使用 $emit('say') 派發事件,父組件可以使用 @say 監聽D. 若父組件給子組件傳值,子組件可經過 props 接受數據
7. 下列關於 vue-router 的描述,不正確的是哪項?A. vue-router 的經常使用模式有 hash 和 history 兩種B. 可經過 addRoutes 方法動態添加路由C. 可經過 beforeEnter 對單個組件進行路由守衛D. vue-router 藉助 Vue 實現響應式的路由,所以只能用於 Vue
8. 下列說法不正確的是哪項?A. 可經過 this.$parent 查找當前組件的父組件B. 可以使用 this.$refs 查找命名子組件C. 可以使用 this.$children 按順序查找當前組件的直接子組件D. 可以使用 $root 查找根組件,並可配合 children 遍歷所有組件
9. 下列關於 v-model 的說法,哪項是不正確的?A. v-model 能實現雙向綁定B. v-model 本質上是語法糖,它負責監聽用戶的輸入事件以更新數據C. v-model 是內置指令,不能用在自定義組件上D. 對 input 使用 v-model,其實是指定其 :value 和 :input
10. 關於 Vue 的生命週期,下列哪項是不正確的?A. DOM 渲染在 mounted 中就已經完成了B. Vue 實例從建立到銷燬的過程,就是生命週期C. created 表示完成數據觀測、屬性和方法的運算和初始化事件,此時 $el 屬性還未顯示出來D. 頁面首次加載過程當中,會依次觸發 beforeCreate,created,beforeMount,mounted,beforeUpdate,updated

明碼標價,童叟無欺!作對九題便可成爲前端懂王,比 Evan 懂,更比他們懂:數組

  • TC39 的 @賀師俊 50 分,他是否是走後門送禮進的 TC39 啊?微信

  • Vue Core Team 的 @胖茶 40 分,可能說明帶他的 mentor 不懂 Vue?不過他第二次作就拿了 90 分……這很贅婿逆襲啊。markdown

  • 搞 React lite 的 @工業聚 作了兩次,第一次 50 分第二次 30 分。怪不得他最近這麼低調,看來是愈來愈作不動題了。

  • 久仰的白學家程序媛 @敖天羽 第一次拿了 60 分,而後持之以恆(沒有靈魂)地刷到了 100 分。這種精益求精的態度值得讚揚。

  • 我(純屬厚臉皮湊數)60 分。

好在拜天哥所賜,咱們仍是刷出了「權威的」參考答案,請查收:

1. BCD2. ABCD3. BD4. B5. C // 據出題人勘誤稱答案應該是 D6. B7. C8. C9. C10. D

對照參考答案,尤大還進行了認真的覆盤檢討,查缺補漏:

唉,身爲 Vue 的做者,竟然連 Vue 的原理都沒有搞清楚,實在太不該該了。應該讓出題人好好教育一下他,幫他分析一下 Vue 的源碼,教他怎麼經過筆試面試,趁如今金九銀十找份 P6 的好工做。工做之後也要記得充電,沒事多關注一下掘金,學一學 Vue 3.0 的視頻教程(狗頭)。

因此按照今天的掘金體,本文徹底能夠起這麼個標題:《一步登天!答對這十道 Vue 題,你就能超越尤雨溪,傲視前端羣雄!》

——但這不是很荒唐嗎?

若是一我的某道題沒答對,就能證實他不懂 Vue 了嗎?

看看這些題,它們能準確反映答題者的水平嗎?使用它們做爲考察依據時,這兩種狀況都再常見不過了:

  • 假陽性 - 只會背題庫的作題家也能混到好 offer。

  • 假陰性 - 公認的資深人士沒法體現出優點。

這裏不會去展開討論具體哪題應該選什麼,由於這早已不是這幾道題的問題,而是國內整個「造火箭、擰螺絲」式面試文化的問題了。我曾經寫過一個回答,逐條斷定爲何 Dan Abramov 配不上阿里 P7。你看身爲 Redux 做者的 Dan 就很樂意告訴你:「我其實不懂不少東西,這沒有什麼關係」。而今天的例子裏,咱們則收集到了更多國內一線的業界玩家們坦誠地告訴你:「這些題我也不會,這沒有什麼關係」——畢竟他們的核心競爭力,可都不是作題呀。

並非否定這些題目對初學者有必定的幫助做用。然而實際上,越是高級和資深的崗位,須要的越不是作題,而是對開放性(技術與非技術)問題的 Problem Solving 技能:

  • 應該怎樣在框架設計上有所突破?

  • 應該怎樣在幾個性能指標間取捨平衡?

  • 應該怎樣靠本身的開源項目盈利?

  • 應該怎樣帶領團隊設定計劃,完成目標?

你固然能夠逃避這些「靈魂的拷問」,一直靠研究(或製造)那些已經被翻來覆去解答過無數遍的題來「磨練水平」。但無能否認的是,正是靠一羣不停迎接真實世界挑戰,持續解決開放問題的人們,才創造了今天業界繁榮生態的輝煌。

作題對於鍛鍊思惟固然重要,但它終歸只是個跳板,不要把應試教育的思惟套用在職業生涯上。比作題更有價值的,最終必定仍是去作事——

  • 去業界前沿,去落地靈感!

  • 去參與社區,去貢獻代碼!

  • 去解決問題,去把手弄髒!

相比之下,十道咬文嚼字的題裏對了幾道錯了幾道,又有什麼關係呢?

作題不至於誤國,但必定是實幹才能興邦。

文中幾位參與者的分數,公開前均徵求過本人贊成。但願不要所以誤解他們的真實水平 :D

源自:https://juejin.im/post/6870737289736093710

聲明:文章著做權歸做者全部,若有侵權,請聯繫小編刪除。

感謝 · 轉發歡迎你們留言

本文分享自微信公衆號 - web前端學習圈(web-xxq)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索