前端面試題2019年小米工程師面試題及答案解析


一、單選題(共24題,每題5分)

1.關於XSS的說法,錯誤的是

A、script,js,vbscript,flash

B、分類:反射,存儲

C、是瀏覽器端代碼注入,惡意的script,css,html代碼被瀏覽器解析

D、PHP相關漏洞

參考答案:D

答案解析:是瀏覽器端代碼注入,惡意的script,css,html代碼被瀏覽器解析。 分類:反射,存儲 script,js,vbscript,flash

 

2.關於JSONP使用的說法錯誤的是:

A、可以實現跨域通信

B、基於 json 格式數據,兼容性好,簡單易用

C、只支持跨域HTTP請求這種情況,不能解決不同域的兩個頁面之間進行JavaScript調用的問題

D、可以完美支持POST請求

參考答案:D

3.HTML頁面中有如下結構的代碼, 下列選項所示jQuery代碼,不能夠讓漢字“四”的顏色變成紅色的是?

A、  $("#header ul li:eq(3)").css("color","red");

B、  $("#header li:eq(3)").css("color","red");

C、  $("#header li:last").css("color","red");

D、  $("#header li:gt(3)").css("color","red");

參考答案:D

答案解析:

注意是選擇不能

4.下面哪一種屬於“creational”的設計模式?

A、Façade

B、Singleton

C、Bridge

D、Composite

E、上面都不是

參考答案:B

答案解析:

總體來說設計模式分為三大類:

創建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。

結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。

行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。

 

5.站點首頁最常用的文件名是( )。

A、index.html    

B、homepage.html   

C、resource.html

D、mainfrm.html

參考答案:A

答案解析:站點首頁最常用的文件名是index.html,其次是default.html。

 

 

6.sessionStorage 保存數據的方法正確的是:

A、sessionStorage.setItem(“鍵值”,”鍵名”);

B、sessionStorage.saveItem(“鍵名”,”鍵值”);

C、sessionStorage.saveItem(“鍵值”,”鍵名”);

D、sessionStorage.setItem(“鍵名”,”鍵值”);

參考答案:D

答案解析:你只要記住兩點,設置一般用 set 開頭, 獲取采用 get 開頭; 對於鍵值的話,一般都是 (key, value)的形式; 所以選D

 

7.使用CSS聲明一個關聯樣式選擇器,以下幾種HTML元素中的內容可以為紅色字體的是: ( )

A、<div>內容</div>

B、<div><em><span>內容</span><em></div>

C、<span></div>內容</div></span>

D、以上都可以

8.JavaScript代碼的用途描述錯誤的是()

A、JavaScript在網頁制作中廣泛使用

B、JavaScript是一種功能強大的弱類型語言

C、JavaScript是一種腳本語言,所以它一般沒人用

D、avaScript是一種解釋型腳本語言

 

 

9.下圖所示為(44)設計模式,屬於(45)設計模式,適用於(46)。

A、 表示對象的部分—整體層次結構時 

B、當一個對象必須通知其它對象,而它又不能假定其它對象是誰時 

C、當創建復雜對象的算法應該獨立於該對象的組成部分及其裝配方式時 

D、在需要比較通用和復雜的對象指針代替簡單的指針時

 

10.數值數據在計算機內用二進制編碼表示,常用的編碼有()

A、補碼

B、ASCII碼

C、GB2312碼

D、UFT-8碼

參考答案:A

答案解析:原碼、反碼和補碼

 

11.當使用HTML5的拖放API實現拖動時,需要監聽”開始拖動”事件,此事件的...

當使用HTML5的拖放API實現拖動時,需要監聽”開始拖動”事件,此事件的名稱是:

A、dragstart

B、dragend

C、drop

D、mousedown

參考答案:A

答案解析:拖放是一種常見的特性,即抓取對象以后拖到另一個位置。 在 HTML5 中,拖放是標准的一部分,任何元素都能夠拖放。 首先,為了使元素可拖動,把 draggable 屬性設置為 true 拖動什么 - ondragstart 放到何處 -ondragover ondragover 事件規定在何處放置被拖動的數據。 進行放置 - ondrop 當放置被拖數據時,會發生 drop 事件

 

12.關於 css 布局中的 BFC ,描述錯誤的是

關於 css 布局中的 BFC ,描述錯誤的是

A、BFC的區域會與float的元素區域重疊

B、計算BFC的高度時,浮動子元素也參與計算

C、BFC就是頁面上的一個隔離的獨立容器,容器里面的子元素是不會影響到外面的元素

D、BFC意為”塊級格式化上下文”

參考答案:A

答案解析:

百度了很多BFC的內容,總結了一篇筆記。 </http:>

 

13.TCP/IP協議棧中的位置(由上到下)?

A、TCP->IP->HTTP->數據鏈路層

B、IP->HTTP->TCP->數據鏈路層

C、HTTP->IP->TCP->數據鏈路層

D、HTTP->TCP->IP->數據鏈路層

參考答案:D

答案解析:HTTP協議通常承載於TCP協議之上,有時也承載於TLS或SSL協議層之上 正確排序為HTTP->TCP->IP->數據鏈路層

 

14.下面有關HTML的Doctype和嚴格模式與混雜模式的描述,錯誤的是?

A、聲明位於文檔中的最前面,處於  標簽之前。告知瀏覽器的解析器,用什么文檔類型 規范來解析這個文檔

B、在標准模式中,瀏覽器根據規范呈現頁面;在混雜模式中,頁面以一種比較寬松的向后兼容的方式顯示

C、DOCTYPE不存在或格式不正確會導致文檔以標准模式呈現

D、瀏覽器根據DOCTYPE是否存在以及使用的哪種DTD來選擇要使用的呈現方法

參考答案:C

答案解析:文檔類型
DTD(文檔類型定義)是一組機器可讀的規則,他們定義 XML 或 HTML 的特定版本中允許有什么,不允許有什么。在解析網頁時,瀏覽器將使用這些規則檢查頁面的有效性並且采取相應的措施。瀏覽器通過分析頁面的 DOCTYPE 聲明來了解要使用哪個 DTD ,由此知道要使用 HTML 的哪個版本。
DOCTYPE 當前有兩種風格,嚴格( strict )和過渡( transitional )。過渡 DOCTYPE 的目的是幫助開發人員從老版本遷移到新版本。
如果發送具有正確的 MIME 類型的 XHTML 文檔,理解 XML 的瀏覽器將不顯示無效的頁面。
瀏覽器模式
瀏覽器有兩種呈現模式:標准模式和混雜模式(quirks mode)。在標准模式中,瀏覽器根據規范呈現頁面;在混雜模式中,頁面以一種比較寬松的向后兼容的方式顯示。
DOCTYPE 切換
對於 HTML 4.01 文檔,
包含嚴格 DTD 的 DOCTYPE 常常導致頁面以標准模式呈現。
包含過度 DTD 和 URI 的 DOCTYPE 也導致頁面以標准模式呈現。
但是有過度 DTD 而沒有 URI 會導致頁面以混雜模式呈現。
DOCTYPE 不存在或形式不正確會導致 HTML 和 XHTML 文檔以混雜模式呈現

 

15.在css3中要使元素由一種樣式轉換成另一種樣式,為元素添加效果的屬性是?

A、animation

B、keyframes

C、flash

D、transform

 

16.HTTPS是一種安全的HTTP協議,它使用 ( ) 來保證信息安全?

A、IPSec 

B、SSL

C、SET

D、SSH

參考答案:B

答案解析:

SSL是解決傳輸層安全問題的一個主要協議,其設計的初衷是基於TCP協議之上提供可靠的端到端安全服務。應用SSL協議最廣泛的是HTTPS,它為客戶瀏覽器和Web服務器之間交換信息提供安全通信支持。它使用TCP的443端口發送和接收報文。

 

17.下列哪一項不是HTML5中新增加的標簽?

A、nav

B、article

C、caption

D、video

 

18.下列jQuery事件綁定正確的是____。

A、$(‘#demo’).bind(‘click’,function(){})

B、$(‘#demo’).click(function() {})

C、$(‘#demo’).on(‘click’,function() {})

D、$(‘#demo’).one(‘click’,function() {})

參考答案:A

答案解析:

.bind( eventType [, eventData ], handler(eventObject) )

為一個元素綁定一個事件處理程序。

.on( events [, selector ] [, data ], handler(eventObject) )

在選定的元素上綁定一個或多個事件處理函數。

.one( events [, data ], handler(eventObject) )

附加一個處理事件到元素。處理函數在每個元素上最多執行一次。

 

19.在jquery中,如果想要獲取當前窗口的寬度值,下面哪個是實現該功能的?

A、width()

B、width(val)

C、width

D、innerWidth()

 

20.下面Http協議請求方式中不包括?

A、OPTIONS

B、HEAD

C、DELETE

D、SET

 

21.jQuery 對象的方法 get() 做什么?

A、觸發一個GET OBJECT請求

B、返回一個對象

C、返回存在jQuery對象中的DOM元素

D、觸發一個GET AJAX請求

 

 22.以下關於HTTP method 的說法,錯誤的是?

A、一台服務器要與HTTP1.1兼容,只要為資源實現GET和HEAD方法即可

B、PUT讓服務器用請求的主體部分來創建一個由所請求的URL命名的新文檔,或者,如果那個URL已經存在的話,就用干這個主體替代它

C、POST起初是用來向服務器輸入數據的。實際上,通常會用它來支持HTML的表單。表單中填好的數據通常會被送給服務器,然后由服務器將其發送到要去的地方。

D、TRACE方法請求web服務器告知其支持的各種功能。可以查詢服務器支持哪些方法或者對某些特殊資源支持哪些方法。

 

23.當表單中包含文件上傳控件時,需要將enctype設置為()

A、application/x-www-form-urlencoded

B、multipart/form-data

C、text/explain

D、file-data

 

24.哪一個不是瀏覽器默認的天生inline-block標簽(擁有內在尺寸,可設置高寬,不會自動換行)?

A、<button>

B、<input>

C、<label>

D、<img>

 

二、多選題(共6題,每題5分)

1.JavaScript函數內部arguments變量的說法,正確的有?

A、arguments所有函數中都包含的一個局部變量,是一個類數組對象,對應函數調用時的實參,如果函數定義同名參數會在調用時覆蓋默認對象

B、arguments[index]分別對應函數調用時的實參,並且通過arguments修改實參時會同時修改實參

C、arguments.callee為當前正在執行的函數本身,使用這個屬性進行遞歸調用時需注意this的變化

D、arguments.length為實參的個數(Function.length表示形參長度)

參考答案:A,B,C,D

答案解析:

函數內部arguments變量有哪些特性,有哪些屬性,如何將它轉換為數組
arguments所有函數中都包含的一個局部變量,是一個類數組對象,對應函數調用時的實參。如果函數定義同名參數會在調用時覆蓋默認對象
arguments[index]分別對應函數調用時的實參,並且通過arguments修改實參時會同時修改實參
arguments.length為實參的個數(Function.length表示形參長度)
arguments.callee為當前正在執行的函數本身,使用這個屬性進行遞歸調用時需注意this的變化
arguments.caller為調用當前函數的函數(已被遺棄)
轉換為數組:var args = Array.prototype.slice.call(arguments, 0);
 

2.下列說法正確的是()

A、display: none;不為被隱藏的對象保留其物理空間;

B、visibility:hidden;所占據的空間位置仍然存在,僅為視覺上的完全透明;

C、visibility:hidden;產生reflow和repaint(回流與重繪);

D、visibility:hidden;與display: none;兩者沒有本質上的區別;

參考答案:A,B

答案解析:

 

 

3.關於柵格系統,以下說法正確的是

A、會有自動的padding樣式

B、會有自動的margin樣式

C、其字體默認為14px

D、其box-sizing默認為border-box

參考答案:A,C,D

答案解析:

此題有極大的問題。柵格系統是把網頁分為 16 12 24欄。 只能要很好的划分就好。有必要一定要創建間隔嗎。為了好理解我們創建一個10欄的柵格化。那么每欄寬度10%。沒有列間隔。你能說他不叫柵格系統嗎?

 

4.假設MySQL數據庫表結構如下,哪些sql語句查詢能較好的利用索引?

create table T{ k int unsigned not null auto\_increment, a date, b varchar(24), c int,d varchar(24), primary key(k),unique key a\_index (a DESC,b DESC), key k1(b),key k2(c),key k3(d) );

A、select b from WHERE b like 'aaa%';

B、select a,b from T WHERE a='2015-10-25' ORDER BY b ASC,c ASC;

C、select a,b,c from T WHERE a='2015-10-25' ORDER BY b ASC;

D、select a,b,c from T WHERE a='2015-10-25' ORDER BY a,b;

參考答案:A,D

答案解析:

題目中的索引b是降序,而B,C兩個選項都是升序,故會導致效率降低。而A,D兩個選項沒有指定升序降序,故會按照其定義的索引a desc,b desc 來進行操作,故而效率較高。所以選A,D。

 

5.下列哪些是正確的引入CSS文件到html中的方式? ()

A、<link rel="stylesheet" type="text/css" href="test.css">

B、<link rel="stylesheet" type="text/css" src="mystyle.css">

C、<style type=”text/css”>body{color:red}</style>

D、<style type=“text/css" src="test.css"></style>

 

 

6.可以包含在HTML網頁head標簽中的有

A、<title>

B、<meta>

C、<body>

D、<link>

 

 

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM