App下載

騰訊前端程序員第一輪面試問題答案

猿友 2017-09-12 18:48:53 瀏覽數(shù) (4329)
反饋

  此前,w3cschool app開發(fā)者頭條上分享了“騰訊C++初面面經”,不少的程序員小伙伴想問有沒有前端開發(fā)員面經之類的。


  那么,今天w3cschool這里給小伙伴們挑選騰訊前端第一輪面試的兩個問題,并解答。

  1、Angular的特性:

  #1 良好的應用程序結構

  通常情況下,我們編寫 JavaScript 沒有明確的結構。雖然在編寫小應用程序的時候沒有問題,但這顯然是不適合于大規(guī)模的應用程序。使用 AngularJS,您可以通過MVC(模型 - 視圖 - 控制器)或MVVM (模型 - 視圖 - 視圖模型)模式來組織源代碼。 AngularJS 是一個 MVW 框架,其中W代表可以用于任何項目。你可以組織你的代碼模塊,它可顯著提高應用程序的可測試性和可維護性。

  #2 雙向數(shù)據綁定

  數(shù)據綁定肯定是 AngularJS 最佳功能之一。你可以聲明綁定的模型到 HTML 元素。當模型發(fā)生變化時,視圖會自動更新,反之亦然。這可以減少大量的傳統(tǒng)樣板代碼,保持模型和視圖同步。

  #3 指令

  AngularJS 指令讓你使用 HTML 新語法快速的構建應用程序。您可以創(chuàng)建可重用的自定義組件與指令的API。例如,如果你想自定義日期選擇器小部件,你可以創(chuàng)建一個組件。如果你想要一個奇特的文件上傳與進度指示器可以繼續(xù)創(chuàng)建一個組件。很酷,不是嗎?

  #4 HTML 模板

  AngularJS 使用 HTML 模板,這使事情變得簡單,并允許設計人員和開發(fā)人員同時工作。設計人員可以按照通常的方式創(chuàng)建用戶界面,而開發(fā)人員可以使用聲明性綁定語法很容易配合不同的UI組件的數(shù)據模型。

  #5 可嵌入、注入和測試

  關于 AngularJS 的最好的事情是,它是一個很好的團隊成員。它從來沒有要求全面承諾。AngularJS 官方網站說,你可以根據你需要使用盡可能多或盡可能少的在項目中使用 AngularJS。如果你只需要雙向數(shù)據綁定,您可以引入 Angular,只是使用此功能。

  AngularJS 支持依賴注入的開箱即用。如果你需要的東西,你只要調用 Angular 來注入。就這么簡單。這巨大的提高可測試性,因為你可以很容易地在測試的模擬組件。

  AngularJS 在創(chuàng)建時候始終考慮著可測試性。這些模塊和依賴注入系統(tǒng),使得單元測試更容易。此外, AngularJS 提供了一個稱為量角器工具,這使得終端到終端的測試變得輕而易舉。所以,你開發(fā)的代碼始終是可測試性和可維護性。

  這還不是全部! AngularJS 還提供了更多的實用功能,如路由,過濾器,和動畫等等。

  2、slice,substr和substring的區(qū)別

  首先,他們都接收兩個參數(shù),slice和substring接收的是起始位置和結束位置(不包括結束位置),而substr接收的則是起始位置和所要返回的字符串長度。直接看下面例子:

  1 var test = 'hello world';

  2

  3 alert(test.slice(4,7)); //o w

  4 alert(test.substring(4,7)); //o w

  5 alert(test.substr(4,7)); //o world

  這里有個需要注意的地方就是:substring是以兩個參數(shù)中較小一個作為起始位置,較大的參數(shù)作為結束位置。

  如:

alert(test.substring(7,4));         //o w

  接著,當接收的參數(shù)是負數(shù)時,slice會將它字符串的長度與對應的負數(shù)相加,結果作為參數(shù);substr則僅僅是將第一個參數(shù)與字符串長度相加后的結果作為第一個參數(shù);substring則干脆將負參數(shù)都直接轉換為0。測試代碼如下:

  1 var test = 'hello world';

  2

  3 alert(test.slice(-3)); //rld

  4 alert(test.substring(-3)); //hello world

  5 alert(test.substr(-3)); //rld

  6 alert(test.slice(3,-4)); //lo w

  7 alert(test.substring(3,-4)); //hel

  8 alert(test.substr(3,-4)); //空字符串

  1 注意:IE對substr接收負值的處理有錯,它會返回原始字符串。


0 人點贊