面試試題總結

閒心面試題

1、任選一題(5分)
a) ul、ol、dl的區別?
b) div、section、article的區別?css

a:ul是無序列表,ol是有序列表,dl是定義列表有層次關係。
b: div section article ,語義是從無到有,逐漸加強的。
div 無任何語義,僅僅用做樣式化或者腳本化的鉤子(hook)
section是有必定語義的div,適合有主題性的內容,表示一個專題,通常有標題,可是不能夠亂用。只有內容明確須要出如今大綱中時纔會使用。
artical是更特殊的section,他是一個獨立完整的內容塊。好比用在文章,評論等。html

2、html5對input新增了哪些高級屬性?(5分)
number,date,color,range,datetime,email,tel,range,search等前端

3、每題都需回答(15分)
a) 如何用CSS控制文本單行溢出省略?而且大體說出多行省略的思路。
b) 談談響應式佈局?
c) CSS3有哪些高級選擇器?
a:css實現單行溢出省略是利用text-overflow:ellipsis,white-space:nowrap和overflow:hidden屬性實現的。(新版主流瀏覽器測試經過)
多上省略:適用於webkit內核和移動端html5

overflow : hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;

b:響應式佈局就是一個網站可以兼容多個終端,而不是爲每一個終端作一個特定的版本。
這個概念是爲解決移動互聯網瀏覽而誕生的。html5也所以加入了媒體查詢等一系列針對響應式佈局的新元素。web

c:css有屬性選擇器{E[att$='val'],E[att~='val'],E[att^='val']}面試

僞類選擇器{E:not(),E:last-child,E:only-child,E:nth-child(n),E:nth-last-child(),E:empty}
       僞對象選擇器{E::selection}
       關係選擇器{E~F}

4、請逐一解釋他們:Node.js、React Native、Angular.js、Grunt/Gulp、Webpack、Git、JSONP(10分)瀏覽器

Node.js: Node.js是一個基於Chrome JavaScript運行時創建的平臺, 用於方便地搭建響應速度快、易於擴展的網絡應用。Node.js 使用事件驅動, 非阻塞I/O 模型而得以輕量和高效,很是適合在分佈式設備上運行的數據密集型的實時應用。
React Native: React Native 結合了 Web 應用和 Native 應用的優點,可使用 JavaScript 來開發 iOS 和 Android 原生應用。在 JavaScript 中用 React 抽象操做系統原生的 UI 組件,代替 DOM 元素來渲染等。
Angular.js: AngularJS誕生於2009年,由Misko Hevery 等人建立,後爲Google所收購。是一款優秀的前端JS框架,已經被用於Google的多款產品當中。AngularJS有着諸多特性,最爲核心的是:MVVM、模塊化、自動化雙向數據綁定、語義化標籤、依賴注入等等。
Grunt/Gulp:自動構建系統,開發者可使用它在網站開發過程當中自動執行常見任務。
Webpack: 是一個模塊打包工具,你可使用WebPack管理你的模塊依賴,並編繹輸出模塊們所需的靜態文件。
Git: Git是一款免費、開源的分佈式版本控制系統,用於敏捷高效地處理任何或小或大的項目。·
JSONP: 爲了便於客戶端使用數據,逐漸造成了一種非正式傳輸協議,人們把它稱做JSONP,該協議的一個要點就是容許用戶傳遞一個callback參數給服務端,而後服務端返回數據時會將這個callback參數做爲函數名來包裹住JSON數據,這樣客戶端就能夠隨意定製本身的函數來自動處理返回數據了。網絡

5、分別說出下述輸出結果(15分)
a) var a, b = 0, fn = function(){框架

var a = b = 2;
};
fn();
console.log(a, b);//(undefined,2)

b) var b = {a: 1}[0]; //b的值 undefined var b={a:1}['a']輸出1分佈式

c) !function(){

this.length = 10;
    var fn = function(){
        console.log(this.length);  //輸出多少?  輸出2 this是arr
    }, arr = [fn, 'hello layui'];
    fn.length = 100;
    arr[0]();
}();

6、封裝一個cont方法,能實現如此調用:cout(a)(b)(c)(d)(e)… 而且返回的值爲參數連剩的結果,即abcde*…。如cout(1)(3)(7) 獲得21 (15分)

var init=0;  //設置一個全局變量
        var muti=function(m)
      {
           init=init*m; 
           return muti
      }
      muti.toString=function()  //這是關鍵的一步
      {
          return init;
      }
        function count(m)  //最終咱們要調用的函數
        {
            init=m ;// 初始化,不然init是0,那麼永遠乘 都是 0,也是很關鍵的一步
            return muti;//最終返回的是 元對象(不是實例化事後的對象哦)
        }

    alert(count(3)(4)(5))

7、任選一題(15分)
a) 談談你對模塊化開發的理解?
b) 你認爲何是更科學效率的組件化?
c) ES6有哪些你以爲不錯的特性?

8、任選一題(20分)a) 實現一個手勢滑動輪播圖,能夠直接用代碼表述,也能夠只說說思路。b) 大體描述如何實現一個基於Express的MVC框架?

相關文章
相關標籤/搜索