A. 前端面試題 如何優化一個網站
減少代碼冗餘,壓縮css與js,盡量使用外部css和js,圖片盡量使用精靈技術,減少頁面的請求次數,js代碼盡量放到頁面底部,不用輕易使用iframe,圖片盡量使用jpg和gif,不要使用png.
B. 前端面試題,求大佬給個結果
第一題 true false false true
第二題 true 報錯 false false true false
之前是為了趕著回答,所以隨便答了,後來檢查,發現也是對的了。後面說說分析:
第一個問題:
先分析最簡單的頁面代碼function A(){};和function B(){};只是普通的函數A和B。
然後就是A的原型。
a是普通的構造函數。
先給你科普一下基礎,我們創建的每個函數都有一個prototype(原型)屬性,這個屬性是一個指針,指向一個對象。這裡面的關鍵字是指針!而原型屬性的作用是,讓對象A包含一些共享的屬性和方法,而這里就是共享了方法,A原型裡面的fun。
PS:有時候,面試官還會把a = new A()放在,A.prototype前面,這樣就會導致原型指針混亂的問題,但是你這個問題,相對簡單,沒有這種情況,所以這里我也不說明了。
然後分析,問題的答案:
1、必定是true,因為每個構造函數都有一個constructor屬性,且指向A。但是如果在原型對象裡面自己去設置constructor屬性,這樣就會導致,指向Object對象,且屬性變為可枚舉的,如果你理解了這里,第二個問題就簡單了。
2、false。上面已經提過了,如果在A的原型裡面設置constructor,指向的對象肯定是Object,不信的話,你可以試試console.log(A.prototye.constructor === Object),這樣一定是true。
3、就是對hasOwnProperty的理解。hasOwnProperty是檢測a對象是否含有'constructor'這個屬性,他檢測的不是原型,而原型僅僅是一個指針,所以是false。
4、沒啥好說的,很簡單,就是true。
第二個問題
先對題目進行分析,new B()產生一個構造函數 而A的原型指向該構造函數
然後,var b = new A(); b和上面的a差不多 只不過A有點改變。
然後分析,答案:
1、在這里我必須說明一下A.prototye ={ } //無論對象裡面是什麼或者做了什麼事,他一定有一個constructor屬性,如果你不主動設置,他一定指向自己,也就是A,不信你自己實驗,所以一定是true。
2、我實在沒有發現代碼中,有類似B.prototype的語句,但是B下面還是有原型屬性B.prototype,只是這個屬性沒有被創建而已。為了確保正確,我查了查,constructor的概念,原來constructor的作用是返回對創建此對象的數組函數的引用。這里涉及了一個關鍵字,就是創建,所以我肯定這個問題的答案是報錯的了。因為這個原型是存在的,但沒被創建。而且constructor的概念,提及了一個重要的概念,引用,我不做說明了,自己網路。
3、其實這里只是繞了一個圈,等你繞過來的時候,他就是問A.prototye = new B();這里的問題了,這時候明顯指向了B,不信,可以把A改為B 一定是true。而這個問題的答案是false。
4、不要被指針影響了,hasOwnProperty檢測的不是原型指針,所以一定是false。
5、沒什麼好說的,明顯為true
6、還是那句原型只是一個指針,b不可能是B的實例,只是A的原型指向了B
綜合,本問題,主要考察的是對原型指針的理解,還有對constructor的認識。
C. 前端面試問題
大數據(big data),指無法在一定時間范圍內用常規軟體工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產
大數據技術可以幫助企業准確定位意向客戶;通過數據分析我們可以建立城市規劃、解決醫療發展難題;傳統行業轉型互聯網也可以利用大數據價值。所以大數回據技術被廣泛應用在各行各業,現在越來越多的企業開始重視大數據技術,並招聘大數據人才。
D. Web前端崗位面試題有哪些
其實,不管是什麼樣的面試形,問的問題都差不多,萬變不離其宗,都有規律可尋。其實對所有的面試官而言,只有一個目的:在最短的時間里了解到你最多的信息。想高效率的准備面試,先從這七個大方面著手吧!
一、基本情況
1、請用最簡潔的語言描述您從前的工作經歷和工作成果。
二、專業背景
您認為此工作崗位應當具備哪些素質?
三、工作模式
您平時習慣於單獨工作還是團隊工作?
四、價值取向
您對原來的單位和上司的看法如何?
五、資質特性
您如何描述自己的個性?
六、薪資待遇
是否方便告訴我您目前的待遇是多少?
七、背景調查
您是否介意我們通過您原來的單位迚行一些調查?
95%的面試基本上都離不開這些問題,當然還有可能問一些專業問題,我想如果你做過的話應該都不是什麼難事,一般面試官都不會過多的問專業方面的問題的。
E. 求《前端程序員面試筆試寶典》
本書是一本前端程序員面試筆試的應試類用書,在內容上,除了講解如何解答前端程序員面試筆試問題,還引入了相關知識點輔以說明,讓讀者能夠更加容易理解。
本書包括前端程序員面試筆試過程中各類知識點,在題目的廣度上,搜集了近3年來多家IT企業針對前端崗位的筆試面試真題。在講解的深度上,本書由淺入深,庖丁解牛式地分析每一個知識點,並提煉歸納,同時,引入相關知識點,並對其進行深度剖析,讓讀者不僅能夠理解這個知識點,還能在遇到相似問題的時候,也能游刃有餘地解決。本書根據知識點進行分類,結構合理,條理清晰,便於讀者學習與查閱。
F. 你遇到過哪些比較有水準的前端面試題
我原來面試工作時候,面試官出了一個這樣的題,題目是:我兒子叫你的兒子叫爸爸。當時我對於這個問題思考了很久。這個題目答案:是男問女的就是公公,女問女就是婆婆,男問男就是爸爸,女問男就是媽媽。這個題很好的考驗了面試者的邏輯思考能力,還有看待事物的全面性,非常不錯。
G. web前端面試經常問到的面試題有哪些
Web前端經常被問到的面試題及答案
一、HTML+CSS
1.對WEB標准以及W3C的理解與認識
標簽閉合、標簽小寫、不亂嵌套、提高搜索機器人搜索幾率、使用外
鏈css和js腳本、結構行為表現的分離、文件下載與頁面速度更快、內容能被更多的用戶所訪問、內容能被更廣泛的設備所訪問、更少的代碼和組件,容易維
護、改版方便,不需要變動頁面內容、提供列印版本而不需要復制內容、提高網站易用性;
2.xhtml和html有什麼區別
HTML是一種基本的WEB網頁設計語言,XHTML是一個基於XML的置標語言
最主要的不同:
XHTML 元素必須被正確地嵌套。
XHTML 元素必須被關閉。
標簽名必須用小寫字母。
XHTML 文檔必須擁有根元素。
3.Doctype? 嚴格模式與混雜模式-如何觸發這兩種模式,區分它們有何意義?
用於聲明文檔使用那種規范(html/Xhtml)一般為 嚴格 過度 基於框架的html文檔
加入XMl聲明可觸發,解析方式更改為IE5.5 擁有IE5.5的bug
4.行內元素有哪些?塊級元素有哪些?CSS的盒模型?
塊級元素:div p h1 h2 h3 h4 form ul
行內元素: a b br i span input select
Css盒模型:內容,border ,margin,padding
5.CSS引入的方式有哪些? link和@import的區別是?
內聯 內嵌 外鏈 導入
區別 :同時載入
前者無兼容性,後者CSS2.1以下瀏覽器不支持
Link 支持使用javascript改變樣式,後者不可
6.CSS選擇符有哪些?哪些屬性可以繼承?優先順序演算法如何計算?內聯和important哪個優先順序高?
標簽選擇符 類選擇符 id選擇符
繼承不如指定 Id>class>標簽選擇
後者優先順序高
7.前端頁面有哪三層構成,分別是什麼?作用是什麼?
結構層 Html 表示層 CSS 行為層 js
8.css的基本語句構成是?
選擇器{屬性1:值1;屬性2:值2;……}
9.你做的頁面在哪些流覽器測試過?這些瀏覽器的內核分別是什麼?
Ie(Ie內核) 火狐(Gecko) 谷歌(webkit) opear(Presto)
二、Javascript
1.javascript的typeof返回哪些數據類型
Object number function boolean underfind
2.例舉3種強制類型轉換和2種隱式類型轉換?
強制(parseInt,parseFloat,number)
隱式(== – ===)
3.split() join() 的區別
前者是切割成數組的形式,後者是將數組轉換成字元串
4.數組方法pop() push() unshift() shift()
Push()尾部添加 pop()尾部刪除
Unshift()頭部添加 shift()頭部刪除
5.事件綁定和普通事件有什麼區別
6.IE和DOM事件流的區別
1.執行順序不一樣、
2.參數不一樣
3.事件加不加on
4.this指向問題
7.IE和標准下有哪些兼容性的寫法
Var ev = ev || window.event
document.documentElement.clientWidth || document.body.clientWidth
Var target = ev.srcElement||ev.target
8.ajax請求的時候get 和post方式的區別
一個在url後面 一個放在虛擬載體裡面
有大小限制
安全問題
應用不同 一個是論壇等只需要請求的,一個是類似修改密碼的
9.call和apply的區別
Object.call(this,obj1,obj2,obj3)
Object.apply(this,arguments)
10.ajax請求時,如何解釋json數據
使用eval parse 鑒於安全性考慮 使用parse更靠譜
11.b繼承a的方法
12.寫一個獲取非行間樣式的函數
function getStyle(obj,attr,value)
{
if(!value)
{
if(obj.currentStyle)
{
return obj.currentStyle(attr)
}
else
{
obj.getComputedStyle(attr,false)
}
}
else
{
obj.style[attr]=value
}
}
H. Web前端最全面試寶典- Html篇
HTML
1.對WEB標准以及W3C的理解與認識
標簽閉合、標簽小寫、不亂嵌套、提高搜索機器人搜索幾率、使用外 鏈css和js腳本、結構行為表現的分離、文件下載與頁面速度更快、內容能被更多的用戶所訪問、內容能被更廣泛的設備所訪問、更少的代碼和組件,容易維 護、改版方便,不需要變動頁面內容、提供列印版本而不需要復制內容、提高網站易用性;
2.xhtml和html有什麼區別
HTML是一種基本的WEB網頁設計語言,XHTML是一個基於XML的置標語言
最主要的不同:
XHTML 元素必須被正確地嵌套。
XHTML 元素必須被關閉。
標簽名必須用小寫字母。
XHTML 文檔必須擁有根元素。
3.Doctype? 嚴格模式與混雜模式-如何觸發這兩種模式,區分它們有何意義?
用於聲明文檔使用那種規范(html/Xhtml)一般為 嚴格 過度 基於框架的html文檔
加入XMl聲明可觸發,解析方式更改為IE5.5 擁有IE5.5的bug
4.行內元素有哪些?塊級元素有哪些?
塊級元素:div p h1 h2 h3 h4 form ul
行內元素: a b br i span input select
5.HTML全局屬性(global attribute)有哪些
參考資料:MDN: html global attribute或者W3C HTML global-attributes
accesskey
:設置快捷鍵,提供快速訪問元素如aaa在windows下的firefox中按alt + shift + a
可激活元素
class
:為元素設置類標識,多個類名用空格分開,CSS和javascript可通過class屬性獲取元素
contenteditable
: 指定元素內容是否可編輯
contextmenu
: 自定義滑鼠右鍵彈出菜單內容
data-*
: 為元素增加自定義屬性
dir
: 設置元素文本方向
draggable
: 設置元素是否可拖拽
dropzone
: 設置元素拖放類型: , move, link
hidden
: 表示一個元素是否與文檔。樣式上會導致元素不顯示,但是不能用這個屬性實現樣式效果
id
: 元素id,文檔內唯一
lang
: 元素內容的的語言
spellcheck
: 是否啟動拼寫和語法檢查
style
: 行內css樣式
tabindex
: 設置元素可以獲得焦點,通過tab可以導航
title
: 元素相關的建議信息
translate
: 元素和子孫節點內容是否需要本地化
6.什麼是web語義化,有什麼好處
web語義化是指通過HTML標記表示頁麵包含的信息,包含了HTML標簽的語義化和css命名的語義化。 HTML標簽的語義化是指:通過使用包含語義的標簽(如h1-h6)恰當地表示文檔結構 css命名的語義化是指:為html標簽添加有意義的class,id補充未表達的語義,如Microformat通過添加符合規則的class描述信息 為什麼需要語義化:
去掉樣式後頁面呈現清晰的結構
盲人使用讀屏器更好地閱讀
搜索引擎更好地理解頁面,有利於收錄
便團隊項目的可持續運作及維護
7.html5有哪些新特性、移除了那些元素?如何處理HTML5新標簽的瀏覽器兼容問題?如何區分 HTML 和 HTML5?
新特性:
HTML5 現在已經不是 SGML 的子集,主要是關於圖像,位置,存儲,多任務等功能的增加。
拖拽釋放(Drag and drop) API
語義化更好的內容標簽(header,nav,footer,aside,article,section)
音頻、視頻API(audio,video)
畫布(Canvas) API
地理(Geolocation) API
本地離線存儲 localStorage 長期存儲數據,瀏覽器關閉後數據不丟失;
sessionStorage 的數據在瀏覽器關閉後自動刪除
表單控制項,calendar、date、time、email、url、search
新的技術webworker, websocket, Geolocation
移除的元素:
純表現的元素:basefont,big,center,font, s,strike,tt,u;
對可用性產生負面影響的元素:frame,frameset,noframes;
支持HTML5新標簽:
IE8/IE7/IE6支持通過 document.createElement 方法產生的標簽,可以利用這一特性讓這些瀏覽器支持 HTML5 新標簽,瀏覽器支持新標簽後,還需要添加標簽默認的樣式(當然最好的方式是直接使用成熟的框架、使用最多的是html5shiv框架):
如何區分:
DOCTYPE聲明新增的結構元素、功能元素
8. HTML5 存儲類型有什麼區別?
HTML5 能夠本地存儲數據,在之前都是使用 cookies 使用的。HTML5 提供了下面兩種本地存儲方案:
localStorage - 沒有時間限制的數據存儲,數據永遠不會過期,關閉瀏覽器也不會丟失
sessionStorage - 針對一個 session 的數據存儲,同一個會話中的頁面才能訪問並且當會話結束後數據也隨之銷毀。
9. HTML5 標准提供了哪些新的API?
1:canvas,不用多說,可以畫出很多絢麗的圖形,甚至可以直接做出偽3D游戲。
2:媒體控制,也很好理解(直譯就是回放功能,假如只用html5.0以下的標簽寫,以前的音樂播放是不可能實現滾動條的。)
3:離線網頁程序,可以把資源文件完全緩存在客戶端,並且通過js的一些方法清空緩存
4:文檔編輯,應該是更好的支持對文檔的編輯。
5:拖動,可以將文件拖動到某些區域上傳
6:跨文檔請求,websocket,一種更加高效的通訊方式
7:歷史管理,可以通過js管理和插入歷史記錄
8:MIME頭自定義
9:客戶端數據存儲,localstoage sessionstoage
10:地理位置共享
11:本地資料庫
12:索引資料庫
10.HTML5 應用程序緩存和瀏覽器緩存有什麼區別?
HTML5 引入了應用程序緩存,這意味著 web 應用可進行緩存,並可在沒有網際網路連接時進行訪問。
應用程序緩存為應用帶來三個優勢:
離線瀏覽 - 用戶可在應用離線時使用它們
速度 - 已緩存資源載入得更快
減少伺服器負載 - 瀏覽器將只從伺服器下載更新過或更改過的資源。
11.常用那幾種瀏覽器測試?有哪些內核(Layout Engine)?
(Q1)瀏覽器:IE,Chrome,FireFox,Safari,Opera。
(Q2)內核:Trident,Gecko,Presto,Webkit。
12.請描述一下 cookies,sessionStorage 和 localStorage 的區別?
cookie在瀏覽器和伺服器間來回傳遞。 sessionStorage和localStorage不會
sessionStorage和localStorage的存儲空間更大;
sessionStorage和localStorage有更多豐富易用的介面;
sessionStorage和localStorage各自獨立的存儲空間;
13.如何實現瀏覽器內多個標簽頁之間的通信?
調用localstorge、cookies等本地存儲方式
14.請寫出localStorage對象的常用方法。
存儲 - localStorage.setItem(key, value) - 如果key存在,更新value
獲取 - localStorage.getItem(key) - 如果key不存在,返回null
刪除 - localStorage.removeItem(key) - 刪除key對應的數據
全部清除 - localStorage.clear() - 清空localStorage中所有數據
遍歷 - localStorage.length
遍歷 - localStorage.key(index)
15.如何在HTML5中啟用應用程序緩存?
<html manifest="fileName.appcache">
每個指定了manifest的頁面在用戶對其訪問時都會被緩存。
.appcache是manifest文件的擴展名
16.html5 離線存儲
Html5的一個重要特性就是離線存儲,所謂的離線存儲就是將一些資源文件保存在本地,這樣後續的頁面重新載入將使用本地資源文件,在離線情況下可以繼續訪問web應用,同時通過一定的手法(更新相關文件或者使用相關API),可以更新、刪除離線存儲等操作。
Html5的離線存儲使用一個manifest文件來標明哪些文件是需要被存儲的,使用如 <html manifest='offline.manifest'> 來引入一個manifest文件,這個文件的路徑可以是相對的,也可以是絕對的,如果你的web應用很多,而且希望能集中管理manifest文件,那麼靜態文件伺服器是個不錯的選擇。
17.HTML5 Canvas 元素有什麼用?
Canvas 元素用於在網頁上繪制圖形,該元素標簽強大之處在於可以直接在 HTML 上進行圖形操作
I. 前端面試題目難嗎 如何輕松面對前端面試
從以下五個方面做,可以輕松面對前端面試:
一、基本知識
DOM結構——兩個節點之間可能存在哪些關系以及如何在節點之間任意移動。
DOM操作——怎樣添加、移除、移動、復制、創建和查找節點。
事件——怎樣使用事件以及IE和DOM事件模型之間存在哪些主要差別。
XMLHttpRequest——這是什麼、怎樣完整地執行一次GET請求、怎樣檢測錯誤。
嚴格模式與混雜模式——如何觸發這兩種模式,區分它們有何意義。
盒模型——外邊距、內邊距和邊框之間的關系,IE8以下版本的瀏覽器中的盒模型有什麼不同。
塊級元素與行內元素——怎麼用CSS控制它們、它們怎樣影響周圍的元素以及你覺得應該如何定義它們的樣式。
浮動元素——怎麼使用它們、它們有什麼問題以及怎麼解決這些問題。
HTML與XHTML——二者有什麼區別,你覺得應該使用哪一個並說出理由。
JSON——它是什麼、為什麼應該使用它、到底該怎麼使用它,說出實現細節來。
二、少量提問
現在有一個正顯示著Yahoo!股票價格的頁面。頁面上有一個按鈕,你可以單擊它來刷新價格,但不會重新載入頁面。請你描述一下實現這個功能的過程,假設伺服器會負責准備好正確的股票價格數據。
這個問題牽扯到一組我想要考察的基本知識點:DOM結構、DOM操作、事件處理、XHR和JSON。如果我要求你對換一種處理股票價格的方式,或者 讓你在頁面中顯示其他信息,就可以把更多的知識點包括進來。對於經驗比較豐富應聘者,我也可以自如地擴展要考察的知識范圍,最簡單像JOSN與XML的區別、安全問題、容量問題等等。
我還希望應聘者給出的任何解決方案中都不要使用庫。我想看到最原生態的代碼,你就當頁面中沒有包含任何庫。你說你對哪個庫了解多少多少,但我不能把關於庫的知識作為評判能力的因素,因為庫是會隨時間變化的。
三、解決問題
做為一名前端工程師,最值得高興的事莫過於解決同一個問題會有很多種不同的方法,而你要做的就是找出最合適的方法來。我在提問的時候,經常會在應聘者解釋完一種方法後問他們還有沒有第二種方法。此時我會跟他們說,假設你的這個方法由於種種原因被否決了,那麼你還能不能給出另一種方法。這樣做可以達到 兩個目的。
首先,可以測試出他們是否在毫無意義地復述書本中的東西。不能不承認,某些人確實有過目不忘的天賦,聽他們在那裡滔滔不絕地講,你會覺得他們什麼都明白。可是,只要一跟這些人談到怎麼查找方案無效的原因,以及能否拿出一個新方案來,他們往往就傻眼了。這時候,如果我聽到「我不明白這個方案為什麼不夠 好」之類的反問,心裡立刻就明白我的問題已經超出了他們的能力范圍,而他們只是想拿自己死記硬背的結論來矇混過關。
其次,可以測試出他們已經掌握的(還是那句話,「想都不用想」)瀏覽器技術知識。如果他們對瀏覽器平台的核心知識有較好的理解,想出解決同一問題的不同方案根本沒有那麼難。
注意:所有問題都與瀏覽器技術相關。我不相信出幾道抽象的邏輯題,就能夠考出某人解決Web技術問題的能力。在我看來,這無異於讓素描大師畫肖像,沒有意義,也得不到任何有價值的信息。
四、有激情
要成為一名優秀的前端工程師,最重要的莫過於對自己做的事要有激情。我們技能都不是從學校中或者從研討會上學來的,因此前端工程師必須具備自學能力。瀏覽器技術的變化可謂日新月異,所以也只有不斷提升自己的技能才做得到與時俱進。我雖然不能強迫誰必須多看博客、不斷學習,但想應聘前端工程師的人恐怕還是必須這么做的。
你怎麼知道誰對這種工作有沒有激情?實際上非常簡單。我只問一個簡單的問題:「目前你對什麼Web技術最感興趣?」這個問題永遠不會過期,而且也幾乎不可能出錯……除非你答不上來。就眼下來說,我希望你對這個問題給出的技術中包括WebSocket、HTML、WebGL、客戶端資料庫,等等。只有 對Web開發充滿激情的人,才會堅持不懈地學習新知識、掌握新技能;
五、最後一點
計算機科學或者Web設計方面的知識當然也有用,但那都是基本知識之外的東西。只要基本知識在那兒了,一切就都有了基礎,想擴充知識面也不難。可是,如果等到正式上班以後,還得從頭學習基本技能,那種難度是不可同日而語的。
J. 有哪些經典的前端開發面試題及答案解析
行元素與塊元素的區別;
如何清除浮動;
定位方式當中,absolute與fixed、relative的區別;
事件的兼容問題;
Ajax是什麼;
如何優化你的頁面;
響應式布局是什麼等等。
經典的前端面試題至少有近百道,在這里也沒辦法全部給你列出來,你可以看看這個(小-程序),裡面有好幾百道面試真題,也有比較好的答案解析。