1. 前端面試 問什麼問題
web前端面試會問人事方面的內容和web前端技術的內容;
人事的面試
web前端人事面試方面,需要注意如何自我介紹、性格有哪些優劣勢、職業規劃方向是什麼、你的特長是什麼、對於加班之類你是怎麼看待等人事面試內容;
web前端技術的面試
技術面試,需要注意HTML+CSS+JavaScript以及JS主流框架的使用,比如Vue、React等,前端相關技術,比如tcp握手協議、網路安全、後端技術等;
對於web前端面試准備,建議你去看「決勝前端」(min app),它裡麵包含了很多web前端技術面試、人事面試等面試真題,而且針對面試題做了詳細的分析與解答。
我給你截圖看一下例子吧
2. 你遇到的前端面試題都有什麼
大家好,我是王我。
隨著春節的結束,各個行業也普遍開始了上班的節奏, 不過本人17號才上班。為什麼?因為長得帥的都上班比較晚。 當然,每到新年結束,又迎來了一批招聘者與面試者,我來說說作為一年工作經驗應該知道的面試題。
HTML篇
1.doctype是什麼?有哪些類型?
2.input有哪些新類型?簡要說明其8用法。
3.HTML5有哪些新特性,移除了哪些元素?如何處理HTML5新標簽的瀏覽器兼容問題?如何區分HTML和HTML5?
4.bootstrap響應式的原理是什麼?
5.多移動終端頁面適配是如何實現的?
CSS篇
1.如何實現兩列布局,左邊自適應,右邊固定寬度?
2.用CSS畫一個三角形
3.CSS實現字體大寫
4.display有哪些常用的屬性值?分別是什麼意思?
5.position為absolute,relative,fixed的定點位置
6.用三種方法清除浮動
7.請介紹一下margin塌陷問題
js篇
1.什麼是事件冒泡和捕獲?如何阻止事件冒泡?(分別用原生和jquery實現)
2.js創建對象,至少使用三種方法
3.簡述一下事件穿透以及解決辦法
4.用三種方式判斷變數類型是否是數組
5.如何實現對象的拷貝?
6.什麼是閉包?閉包的優缺點。
7.簡述一下ajax請求的過程。
8.簡述一下new一個人構造函數的人過程。
9.為什麼會有跨域?是怎麼解決跨域問題的?簡述一下原理。
10.js原始數據類型有哪些?
11.學一個函數,判斷一個變數是否是字元串
12.typeof有哪些結果?
13.剪頭函數和普通函數有什麼區別?
14.請用三種方法實現數組去重
15.href和src有什麼區別?
jquery篇
1.attr()和prop()有什麼區別?
2.on和bind有什麼區別?js動態添加的dom元素是通過on還是bind?
3.touch和click有什麼區別?
4.window.onload和jquery的ready有什麼區別?
vue篇
1.簡述一下vue的生命周期及其特點
2.vue雙向綁定的原理是什麼?
3.vue的特點有哪些?和jquery有什麼區別?
4.父子組件之間傳遞數據的方法
5.子組件如何共享數據?
6.一般有什麼工具進行數據交互?
7.webpack的原理是什麼?
8.簡述一下$nextTick的用法
瀏覽器篇
1.cookie、sessionStorage、localStorage的區別是什麼?
2.有用過瀏覽器緩存嗎?簡述一下基本的緩存機制
網路篇
1.http和https之間的區別
2.從伺服器的安全考慮,是使用get請求還是post請求?
3.URL請求的過程有哪些?
項目經驗篇
1.項目中遇到的最大挑戰以及解決辦法
2.常見的網頁優化有哪些?
作為一個面試一年以內工作經驗的前端程序員來說,以上的問題能夠倒答如流月薪6k應該不成問題啦。這些面試題也是我在很多面試中感覺經常被問到的題目。
希望大家年後找工作能夠順順利利, 千萬不要跟我一樣哦,只有帥氣就一無所有了。
大家好,我是王我,中國最帥的前端程序員。
前幾次都是各種培訓公司,各種忽悠就不提了,說說後面4次面試的經歷。
第一次是面一個小公司,不過他們好像沒有厲害的前端,來面我的是個後端,一來沒有問我關於js的知識,直接問我以前做過什麼,有沒有經驗,我本人不會吹牛,簡歷也沒怎麼包裝,就是自己把自學的知識和做的幾個小demo弄在上面,也用github掛在頁面上了,不過他根本不點開看,也不問,問我會不會vue,我當時對框架還不了解,他就說他們需要能直接上手開始寫的,所以我第一個就直接掛了。
第二次面試是一個國企,這個問了很多問題,都很基礎,js數據類型,數組操作,事件,大概就是高程的前面幾章看看就差不多都能答到,然後因為他們主要用jq,所以問了很多jq的操作,關於節點的,動畫的,我看鋒利的jq大概看了3遍,也練過多次,所以我答的很熟。然後問了些布局方面的,bootstrap我了解過,又看過css3,所以這方面也沒啥問題,最後在現場做了個題目,主要就是布局然後通過ajax呈現數據。後面聽介紹我面試的說面試官比較滿意,說我jq很熟,一面就過了。可惜後面電話面試不知怎麼回事可能表現的不夠自信,雖然沒問技術,但是我沒啥自信,把沒項目經驗什麼的也不知怎麼就一五一十交代了,估計因為這個掛掉了。
第三次沒問問題,直接就是一套題開做,我在那做了一個多小時。題目就是按照要求一步一步做一個頁面出來,我也搞忘了我當時卡在哪個地方了,坐在那得時候就是做不出來,沒有設計圖,要根據他的描述自己找個設計圖然後做,我第一次遇到這個有點懵,雖然當時沒做出來,不過回來我自己花了幾個小時把它做了。所以這個也是涼了。
第四個問的比較多,數據類型,數組操作,跨域,ajax,閉包,原型鏈,繼承,深拷貝,淺拷貝,模塊amd cmd,基本都是問的js。然後問了html5的新特性 css3 的新特性,遇到過什麼瀏覽器的兼容性問題,怎麼解決的,以後想往什麼方面發展。這個時候我已經會點vue了,照著做了個小demo,不過後來知道公司用的angularjs,面試官也沒看我做的,問也沒問。。以前聽網上說要帶上自己的項目去面試感覺沒起多大效果。
最後總結下如果面的比較初級的崗位,應該主要問js,原型鏈,繼承,閉包,深淺拷貝,ajax,跨域,然後js的基礎知識,對了還有apply和call也問了,html5的新特性了解下就行。主要就是看你js掌握的程度,如果稍微要求高一點的,暫時還沒面過,等以後面過在來回答
1. cookie session 的用途和區別,以及有效期
1、cookie數據存放在客戶的瀏覽器上,session數據放在伺服器上。
2、cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙
考慮到安全應當使用session。
3、session會在一定時間內保存在伺服器上。當訪問增多,會比較佔用你伺服器的性能
考慮到減輕伺服器性能方面,應當使用COOKIE。
4、單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。
2. vue的數據綁定原理,mvvm與mvc的區別
MVVM:
m:model數據模型層 v:view視圖層 vm:ViewModel
vue中採用的是mvvm模式,這是從mvc衍生過來的
MVVM讓視圖與viewmodel直接的關系特別的緊密,就是為了解決mvc反饋不及時的問題
圖片說明一下:
說到MVVM就要說一下雙向綁定和數據劫持的原理,
MVC:
m:model數據模型層 v:view視圖層 c:controller控制器
原理: c層需要控制model層的數據在view層進行顯示
MVC兩種方式,圖片說明:
總結:
mvvm與mvc最大的區別:
MVVM實現了view與model的自動同步,也就是model屬性改變的時候, 我們不需要再自己手動操作dom元素去改變view的顯示,而是改變屬性後該屬性對應的view層會自動改變。
不懂得可以復制鏈接查看:
https://www.pianshen.com/article/3716256399/
3. storage 的區別 sessionStorage localStorage
localStorage 的生命周期是永久性的。假若使用localStorage存儲數據,即使關閉瀏覽器,也不會讓數據消失,除非主動的去刪除數據,使用的方法如上所示。localStorage有length屬性
sessionStorage 的生命周期是在瀏覽器關閉前。也就是說,在整個瀏覽器未關閉前,其數據一直都是存在的。sessionStorage也有length屬性,其基本的判斷和使用方法和localStorage的使用是一致的
有一個文本框 通過v-bind綁定了value屬性 值為myname 是我們在vue實例中定義的屬性
傳統我們獲取文本框值方法 可能通過getElementById找到文本框 然後獲取其value屬性
但是vue中直接通過v-bind綁定了value屬性 所以不需要像之前那樣獲取值
所以在後面的按鈕中獲取name值 直接獲取vue實例對象data裡面的myname屬性即可
【數據為尊 ----數據映射到瀏覽器 如果數據v-model後修改(肯定input)然後到數據在有數據映射到瀏覽器頁面 ----映射關系統稱】
緩存路由組件
使用的是vue的一個組件,參考vue的官方文檔
使用這個東西可以保證我們在切換組件的時候,原來顯示的組件不被銷毀
-----【保障組件的數據不會被切換路由而銷毀數據】
Home是對應的組件對象的名字,不是路由的名字
6.多維數組拍平
數組拍平也稱數組扁平化,就是將數組裡面的數組打開,最後合並為一個數組
一紅六種方法吧……
了解的請看: https://www.cnblogs.com/guan-shan/p/10165737.html
7.跨域的原因 解決方案
跨域是指一個域下的文檔或腳本試圖去請求另一個域下的資源,這里跨域是廣義的。
這樣就可以說同源策略----協議---埠---域名
原生的src和href可以解決跨域
代理可以解決
請求頭也可以攜帶瀏覽器提示的也可以解決
一般都是後端解決跨域問題
【別的需要了解看下方鏈接】
https://blog.csdn.net/qq_41604383/article/details/100770100
8.uniApp兼容問題§ 如果你使用cli創建項目(即項目根目錄是package.json),不管用什麼ide,即便是用HBuilderX,切記cli項目的編譯器是在項目下的,HBuilderX不管怎麼升級都不會影響編譯器版本。你需要手動npm update來升級編譯器。以及如果你想要安裝less、scss等預編譯器,也需要自己npm安裝在項目下,而不是在HBuilderX的插件管理里安裝。
§ 如果你使用離線打包,請注意HBuilderX升級後,真機運行基座和雲打包對應引擎跟隨HBuilderX升級,而你的sdk需要手動升級。sdk的版本升級一般滯後HBuilderX正式版升級一兩天。
§ 如果你使用自定義基座,之前製作的自定義基座是不會跟隨HBuilderX升級的,升級HBuilderX後你應該重新製作新版自定義基座。
§ 如果你使用wgt升級,新版HBuilderX編譯的wgt,運行到之前的runtime上,一定要先測試好,看有沒有兼容性問題。如果有問題,就不要wgt升級,整包升級。
§ 考慮到向下兼容,uni-app編譯器在升級為新的自定義組件模式後,同時保留了對老編譯模式的向下兼容。
在HBuilderX alpha版中,App端一定會使用新編譯器,不理會manifest配置。
在HBuilderX 正式版中,新創建的項目會使用新編譯器,老項目不會強制使用,而是開發者自己在manifest里配置開啟。
§ 如果你使用其他ide開發uni-app,會經常因為拼錯單詞而運行失敗,因為經過webpack編譯一道,很多錯誤反應的不夠直觀,排錯時間很長,不如從開始就依賴有良好提示的HBuilderX,避免敲錯單詞。
§ 雲打包的引擎版本說明
HBuilderX Alpha,只有1套雲打包機,不管你的HBuilderX alpha版本多少,對應的打包機一定是最新的alpha版的客戶端引擎。
HBuilderX正式版,有2套打包機,一個是最新正式版,一個是次新正式版。
中間的緊急更新版本沒有獨立打包機。
舉個例子:
HBuilderX 有1.8.0、1.8.1、1.8.2、1.9.0、1.9.1這幾個正式版。
那麼當前可用的打包機有1.9.1和1.8.2這2台。(即每個大版本的最後一個版本)
除了這2個HBuilderX版本外,其他版本的雲打包都指向最新的1.9.1版對應的打包機。(即只保留2個大版本的雲打包機)
【詳情請看】
https://ask.dcloud.net.cn/article/35845
一、HTML
HTML書寫規范
H5新增標簽
HTML渲染過程
二、CSS
css盒子模型概念
css彈性布局概念
三、JavaScript
事件模型
DOM2級事件模型
閉包
原型鏈
四、移動Web開發
常見的布局方案
移動端前端常見的觸摸相關事件touch、tap、swipe等整理
移動端前端手勢事件
移動端頁面渲染優化
GPU渲染
GPU核心渲染過程
五、調試
常用的調試工具
Chrome控制台調試js使用
移動端測試
六、HTTP網路知識
常見的HTTP狀態碼
不同請求類型的區別
WEB緩存方案
——————————
牛客網(www.nowcoder.com)
- 專業IT筆試面試備考平台
- 最全C++JAVA前端等互聯網技術求職題庫
- 全面提升IT編程能力
- 程序員交友聖地
分享了一些Web前端的面試題,限時一小時,你看看自己能夠答出多少道!
放心,這些面試題都是一些非常基礎的知識,只要你在平時認真聽課、學習了,那麼這些面試題肯定不會難道你。
建議:雖然沒有人監督你,但還是希望你不要去尋找答案,脫離網路,拿起紙筆,你試一下自己究竟能夠答出個什麼水平!有沒有真本領?答案盡在這些面試題里!那麼,你准備好了嗎?OK!計時開始!
一、HTML常見題目01、Doctype作用?嚴格模式與混雜模式如何區分?它們有何意義?
02、HTML5為什麼只需要寫?
03、行內元素有哪些?塊級元素有哪些?空(void)元素有那些?
04、頁面導入樣式時,使用link和@import有什麼區別?
05、介紹一下你對瀏覽器內核的理解?
06、常見的瀏覽器內核有哪些?
07、html5有哪些新特性、移除了那些元素?如何處理HTML5新標簽的瀏覽器兼容問題?
08、如何區分HTML和HTML5?
09、簡述一下你對HTML語義化的理解?
10、HTML5的離線儲存怎麼使用,工作原理能不能解釋一下?
二、CSS類的題目01、介紹一下標準的CSS的盒子模型?與低版本IE的盒子模型有什麼不同的?
02、CSS選擇符有哪些?哪些屬性可以繼承?
03、CSS優先順序演算法如何計算?
04、CSS3新增偽類有那些?
05、如何居中p?如何居中一個浮動元素?如何讓絕對定位的p居中?
06、display有哪些值?說明他們的作用。
07、position的值relative和absolute定位原點是?
08、CSS3有哪些新特性?
09、請解釋一下CSS3的Flexbox(彈性盒布局模型),以及適用場景?
10、用純CSS創建一個三角形的原理是什麼?
三、Java類的題目
01、介紹Java的基本數據類型。
02、說說寫Java的基本規范?
03、Java原型,原型鏈?有什麼特點?
04、Java有幾種類型的值?(堆:原始數據類型和棧:引用數據類型),你能畫一下他們的內存圖嗎?
05、Java如何實現繼承?
06、Java創建對象的幾種方式?
07、Java作用鏈域?
08、談談This對象的理解。
09、eval是做什麼的?
10、什麼是window對象?什麼是document對象?
OK,一小時到了,這個時間可不算短了,那麼這些面試題你答出了幾道呢?你寫的答案正確了嗎?現在你可以去翻看答案了。
如果你答出了絕大多數的或者是全部的題,並且答案也正確了,那麼恭喜你……
你這時心裡是不是有點小竊喜,認為自己有能力拿高薪了?雖然我也很想這么告訴你,但事實上這只能表明你的基礎扎實,畢竟這只是一些非常基礎的面試題。騷年~繼續努力吧!
如果你只答出了小部分或者答出了大部分題但答案不正確,那麼我只想說:「騷年,你的水平還差的遠呢。」連這么基礎的題你都打不出來,還想拿高薪?回去再練一段時間吧!
扎實的基礎是你拿高薪的重要武器,如果你連基礎都不扎實,那麼想要攻克「高薪」這個厚實的堡壘,那隻是痴人說夢罷了。
1.前端框架類問題,問你會不會用vue react啊
2.語言類,問你一些JavaScript語言的問題
3.項目經驗,讓你講講做過的項目,遇到的問題和解決之道
3. 有哪些經典的 Web 前端或者 JavaScript 面試筆試題
JavaScript面試題:字元串處理
在應聘前端程序員時,在筆試部分經常會考到字元串處理的問題。這些題有一個特點,站在考官的角度去考慮,它考的不是你會不會,而是你能不能在不借用XX手冊或者XX指南再或者網路谷歌的情況下,用比較簡潔的方式寫出答案來。就具體的字元串處理問題,鄭州尚學堂給大家分享一下。
1、字元串轉換
字元串轉換是最基礎的要求和工作,你可以將任何類型的數據都轉換為字元串,你可以用下面三種方法的任何一種:
var num= 19; // 19
var myStr = num.toString(); // "19"
你同樣可以這么做:
var num= 19; // 19
var myStr = String(num); // "19"
或者,再簡單點兒:
var num= 19; // 19
var myStr = "" +num; // "19"
2、字元串分割
字元串分割,即將一個字元串分割為多個字元串,JavaScript中給我們提供了一個非常方便的函數,如:
var myStr = "I,Love,You,Do,you,love,me";
var substrArray = myStr .split(","); // ["I", "Love", "You", "Do", "you", "love", "me"];
var arrayLimited = myStr .split(",", 3); // ["I", "Love", "You"];
split()的第二個參數,表示返回的字元串數組的最大長度。
3、獲取字元串長度
字元串長度是在開發中經常要用到的,非常簡單如下:
var myStr = "I,Love,You,Do,you,love,me";
var myStrLength = myStr.length; //25
4、查詢子字元串
很多人都會忘記這幾個JavaScript的自帶的方法,或者忘記它們的具體用法,從而導致在做題的時候不得不嵌套for循環來做。
第一個函數:indexOf(),它從字元串的開頭開始查找,找到返回對應坐標,找不到返回-1,如下:
var myStr = "I,Love,you,Do,you,love,me";
var index = myStr.indexOf("you"); // 7 ,基於0開始,找不到返回-1
第二個函數:lastIndexOf(),它從字元串的末尾開始查找,找到返回對應坐標,找不到返回-1,如下:
var myStr = "I,Love,you,Do,you,love,me";
var index = myStr.lastIndexOf("you"); // 14
以上兩個函數同樣接收第二個可選的參數,表示開始查找的位置。
5、字元串替換
單單查到字元串應該還不會停止,一般題目都還經常會遇到讓你查到並替換為你自己的字元串,例如:
var myStr = "I,love,you,Do,you,love,me";
var replacedStr = myStr.replace("love","hate");//"I,hate,you,Do,you,love,me"
默認只替換第一次查找到的,想要全局替換,需要置上正則全局標識,如:
var myStr = "I,love,you,Do,you,love,me";
var replacedStr = myStr.replace(/love/g,"hate");//"I,hate,you,Do,you,hate,me"
6、查找給定位置的字元或其字元編碼值
想要查找給定位置的字元,你可以使用如下函數:
var myStr = "I,love,you,Do,you,love,me";
var theChar = myStr.charAt(8);// "o",同樣從0開始
同樣,它的一個兄弟函數就是查找對應位置的字元編碼值,如:
var myStr = "I,love,you,Do,you,love,me";
var theChar = myStr.charCodeAt(8); //111
7、字元串連接
字元串連接操作可以簡單到用一個加法運算符搞定,如:
var str1 = "I,love,you!";
var str2 = "Do,you,love,me?";
var str = str1 + str2 + "Yes!";//"I,love,you!Do,you,love,me?Yes!"
同樣,JavaScript也自帶了相關的函數,如:
var str1 = "I,love,you!";
var str2 = "Do,you,love,me?";
var str = str1.concat(str2);//"I,love,you!Do,you,love,me?"
其中concat()函數可以有多個參數,傳遞多個字元串,拼接多個字元串。
8、字元串切割和提取
有三種可以從字元串中抽取和切割的方法,如:
第一種,使用slice():
var myStr = "I,love,you,Do,you,love,me";
var subStr = myStr.slice(1,5);//",lov"
第二種,使用substring():
var myStr = "I,love,you,Do,you,love,me";
var subStr = myStr.substring(1,5); //",lov"
第三種,使用substr():
var myStr = "I,love,you,Do,you,love,me";
var subStr = myStr.substr(1,5); //",love"
與第一種和第二種不同的是,substr()第二個參數代表截取的字元串最大長度,如上結果所示。
9、字元串大小寫轉換
常用的轉換為大寫或者小寫字元串函數,如下:
var myStr = "I,love,you,Do,you,love,me";
var lowCaseStr = myStr.toLowerCase();//"i,love,you,do,you,love,me";
var upCaseStr = myStr.toUpperCase();//"I,LOVE,YOU,DO,YOU,LOVE,ME"
10、字元串匹配
字元串匹配可能需要你對正則表達式有一定的了解,先來看看match()函數:
var myStr = "I,love,you,Do,you,love,me";
var pattern = /love/;
var result = myStr.match(pattern);//["love"]
console.log(result .index);//2
console.log(result.input );//I,love,you,Do,you,love,me
如你所見,match()函數在字元串上調用,並且接受一個正則的參數。來看看第二個例子,使用exec()函數:
var myStr = "I,love,you,Do,you,love,me";
var pattern = /love/;
4. 面試Web前端需要注意什麼會面試哪些問題
作為一名HTML5前端工程師,為了工作,為了就業我們免不了要參加各種各樣的面試。為此總結了面試前的注意事項:
第一:注意自己的儀容儀表
面試之前,一定要再次從頭到腳地將自己的儀容儀表檢查一遍。檢查時主要包括,自己的牙縫是不是還有食物殘渣,所以你需要就近找一個衛生間,如果沒有衛生間就近找一個角落也是可以的,但是切記一定不要在大庭廣眾之下。因此,為了給自己整理出著裝的時間請在約定時間前20分鍾到達。
第二:再次檢查面試時所需的資料是否都已帶全
這些資料主要包括:身份證明、學歷文憑證明、個人簡歷、以往作品等等,如果這些東西齊全之後,需要對這些資料做一個整理與排序。因為沒有哪個面試官希望看到面試者拿出一堆「莫名其妙」的東西塞給他,讓他自己再一頁一頁的翻找自己需要的內容,如果說這些資料在面試官手中不小心散落一地,結果可想而知。這樣的求職者在面試官眼中也一定不是一個讓人放心、有條不紊的員工。當然如果檢查時發現資料沒有帶全,也不要緊張。反而你要慶倖幸虧及時檢查,也有足夠的時間組織語言去向面試官解釋。
第三:面試之前將通信工具調成振動或關閉狀態
雖然說面試者與面試官之間是一個平等的關系,但畢竟你是去人家公司求職的,始終處於一個被動的狀態,所以最起碼的尊重還是要做到的。曾經有調查顯示,對於面試過程中接電話或是被電話打斷的求職者,會被HR減分。
第四:等候面試官時,仔細觀察多了解面試公司
在等候面試官時,可以暗自觀察一下公司的大體情況比如員工的著裝風格、公司的LOGO或是貼在牆上的企業文化、公司的環境等等,一來可以在接下來的面試過程中表現出自己對公司的認同感,二來也可以讓自己對求職公司多些了解,以確定是否要接受這里的工作。如果你身邊有公司的資料宣傳架,不妨取一本翻看一下,也會增加HR對你的好感。
第五:放鬆心情,保持自信
面試時一定要保持一定的自信,這樣也會給面試官留下很好的印象。面試只是你步入工作的第一步,即便是失敗了那也是人生重要的經歷。失敗是為了更好的迎接下一個挑戰。
作為一名web前端工程師千萬不要覺得懂技術面試就能萬事大吉了,像以上五點細節性的東西也是一定要掌握的。
面試題系列:
網頁鏈接
5. 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
}
}
6. 前端面試要點
想要通過前端面試順利進入一線大廠成就高薪前端夢。那麼首先,我們得知道前端面試中,社招和校招究竟有啥區別?
對於前端開發來說,如果說社招更看重對前端技術體系的深入理解,以及解決問題的能力話,那校招更看重的其實是基本功和學習能力(或者說是潛力)。
但其實,無論是社招還是校招,面試的時候都會問到一些曾經操作過的項目,尤其是大廠,或者熱門高薪部門,面試官除必問的技術經驗外,也會對技術深度進行一個基礎的考核,那在這種情況下如何hold住大廠面試呢?
前端面試三要素:簡歷、個人介紹、技術能力。下面,就來分別聊一聊。
1、簡歷篩選關:
HR一般會去看簡歷中所提的技術棧是否匹配,怎麼看呢?我們可以抓住簡歷中的技術名詞,一般來說如果一點技術名詞都沒有提到,那麼大概有以下幾種可能:很水、很牛但概率很小、不會寫簡歷。所以,一部分人可能會因為簡歷的問題沒有了面試機會,這點是需要非常注意的。
2、個人介紹關:
通過了簡歷篩選階段,就真正到了面試環節。這時候一定要准備好一段最多3分鍾的個人介紹。請注意,最多3分鍾!言簡意賅的說明自己的工作時間,擅長技術棧和自己的工作預期。
3、項目經驗表達:
對前端開發學習者而言,JS並不陌生,但大廠的JS面試題卻總是顯得很「陌生」,怎麼樣能夠真正做到深入理解與高級應用?這不僅是面試過程中對前端求職者的要求,也是大多數前端開發者的痛點。
大廠面試中,面試官除了關注你的項目經驗外,還往往喜歡和面試者深入探討前端某些技術領域成體系的前端知識。比如:模塊化、非同步解決方案、網路、框架及原理、線程等,但在與面試官的正面battle中,求職者總會敗下陣來。
所以,建議大家在Web前端面試前一定要注重這三個方面的內容。注重了這些想找找到一份適合的Web前端開發工作並不是難事。
7. 前端面試官常問的問題有哪些
1、重繪和重排的關系:
重繪不會引起重排,但重排一定會引起重繪,一個元素的重排通常會帶來一系列的反應,甚至觸發整個文檔的重排和重繪,性能代價是高昂的。
2、重繪的概念:
重繪是一個元素外觀的改變所觸發的瀏覽器行為,例如改變visibility、outline、背景色等屬性。瀏覽器會根據元素的新屬性重新繪制,使元素呈現新的外觀。由於瀏覽器的流布局,對渲染樹的計算通常只需要遍歷一次就可以完成。
但table及其內部元素除外,它可能需要多次計算才能確定好其在渲染樹中節點的屬性值,比同等元素要多花兩倍時間,這就是我們盡量避免使用table布局頁面的原因之一。
3、觸發重排的情況:
頁面渲染初始化時;瀏覽器窗口改變尺寸;元素尺寸改變時;元素位置改變時;元素內容改變時;添加或刪除可見的DOM元素時。
4、rex的缺點:
(1)一個組件所需要的數據,必須甶父組件傳過來,而不能像flux中直接從store取。
(2)當一個組件相關數據更新吋,即使父組件不需要用到這個組件,父組件還是會重新render,可能會有效率影響,或者需要寫復雜的shouldComponentUpdate進行判斷。
5、對MVC和MVVM的理解:
(1)mvc:View傳送指令到Controller Controller完成業務邏輯後,要求Model改變狀態Model將新的數據發送到View,用戶得到反饋所有通信都是單向的。Angular它採用雙向綁定(data-binding):View的變動,自動反映在ViewModel,反之亦然。組成部分Model、View、ViewModel
(2)View:UI界面ViewModel:它是View的抽象,負責View與Model之間信息轉換,將View的Command傳送到Model;Model:數據訪問層。
8. 面試web前端的工作,會被問到什麼問題
在實際的面試中,你可能需要使用 JavaScript、CSS 和 HTML 來編寫代碼。在你的面試期間,你可能需要實現 UI、構建窗口小部件或使用 Lodash 和 Underscore.js 這樣的庫編寫常用的實用程序函數。例如:構建常見的 Web 應用程序的布局和交互,例如類似 Netflix 網站那樣的。實現小部件,如日期選擇器、輪播或電子商務網站購物車。寫一個類似 debounce 或深度 clone 對象的函數。
9. 前端面試會提問到哪些
在面試前端的過程中,有些問題是經常會被提問到的
一、基礎篇
1. 在不使用第三個變數的情況下,如何調換a與b的值?
2. px與em的區別
3. 簡述一下盒模型
4. 頁面導入樣式時,使用link和@import有什麼區別?
5. 簡述一下事件代理
二、HTML常見題目
01、Doctype作用?嚴格模式與混雜模式如何區分?它們有何意義?
02、HTML5為什麼只需要寫?
03、行內元素有哪些?塊級元素有哪些?空(void)元素有哪些?
04、頁面導入樣式時,使用link和@import有什麼區別?
05、介紹一下你對瀏覽器內核的理解?
06、常見的瀏覽器內核有哪些?
07、html5有哪些新特性、移除了哪些元素?如何處理HTML5新標簽的瀏覽器兼容問題?
08、如何區分HTML和HTML5?
09、簡述一下你對HTML語義化的理解?
10、HTML5的離線儲存怎麼使用,工作原理能不能解釋一下?
三、CSS類的題目
01、介紹一下標準的CSS的盒子模型?與低版本IE的盒子模型有什麼不同的?
02、CSS選擇符有哪些?哪些屬性可以繼承?
03、CSS優先順序演算法如何計算?
04、CSS3新增偽類有哪些?
05、如何居中div?如何居中一個浮動元素?如何讓絕對定位的div居中?
06、display有哪些值?說明他們的作用。
07、position的值relative和absolute定位原點是?
08、CSS3有哪些新特性?
09、請解釋一下CSS3的Flexbox(彈性盒布局模型),以及適用場景?
10、用純CSS創建一個三角形的原理是什麼?
四、JavaScript類的題目
01、JavaScript中this是如何工作的
02、請解釋原型繼承的原理。
03、什麼是閉包(closure),如何使用它,為什麼要使用它?
04、.call 和.apply的區別是什麼?
05、請指出JavaScript 宿主對象(host objects) 和原生對象(native objects) 的區別?
06、請指出以下代碼的區別:function Person(){}、var person = Person()、var person = new Person()?
07、請解釋變數聲明提升(hoisting)。
08、什麼是 「use strict」; ? 使用它的好處和壞處分別是什麼?
09、什麼是事件循環 (event loop)?
10、請解釋同步 (synchronous) 和非同步 (asynchronous) 函數的區別。
五、開發及性能優化類題目
01、如何規避javascript多人開發函數重名問題?
02、請說出三種減低頁面載入時間的方法.
03、說說你所了解到的Web攻擊技術。
04、說說你說了解的前端性能優化方法?
05、前端開發中,如何優化圖像?圖像格式的區別?
06、瀏覽器是如何渲染頁面的?
07、頁面重構怎麼操作?
08、什麼叫優雅降級和漸進增強?
09、前端需要注意哪些SEO?如何做SEO優化?
10、平時如何管理你的項目?
10. 前端hr面試常問的問題
面試其實就是一個不斷選擇與被選擇的過程(不知道說的對不對)。不同公司的面試方式都有所不同,大多數人都有過多次面試的經歷,前端面試也不外乎那麼一些啦(好像有些廢話的感覺)。
面試之前的小故事
HR會打電話過來我是××公司的,在××上看到你投到我們公司的簡歷,問你何時候有空約一個唄,然後說就星期*吧,既然都打電話請我面試了,好吧,那就約一個!
然後有些人會精心准備,不停刷面試題,整夜整夜的看著HTML/JS/CSS知識點,還有那些最新的、時髦的技術,看看到時候能不能唬住面試官;而有些人對自己胸有成竹,哥那麼多年的前端經驗了,啥項目沒有經歷過,不就一個面試,怕啥呢。
很快或者很慢的來到那天。你打扮的清清爽爽漂漂亮亮的,打扮的好會有加分不,沒錯,第一印象也是挺重要的。途中有些人可能會還一直想著面試官會問啥題目呢,那啥**屬性是什麼來著呢,再次拿出手機默默的看起資料;有些人可能就會想著公司不知道妹子多不多漂亮不呢,環境和福利不知道咋樣,最好別碰到傻逼一樣的面試官哎,不然這以後咋相處好呢。
來到公司,大小公司大家都見多了嘛,也是得看發展是吧,我們也不是膚淺的人,見到前台妹妹,喲,還不錯哦。領你進會議室里,讓你稍等一下,她去通知面試官,過了一會兒,不是面試官進來,那就是前台妹妹給您送來一杯水。面試官踱步向前,咦~,我是繼續坐著呢,還是站著呢,還是站起來顯禮貌一些嗯。
給面試的一般會是Team Leader或者非常資深的工程師。首先會讓你自我介紹下,然後巴拉巴拉介紹自己,途中或者聊到面試官喜歡的`部分那就會中斷問幾個問題吧,介紹完自己,就進入正式的戰鬥了吧,一般會有2-3輪的回合。遇知戰斗詳情,請聽下回分解。
哈哈, 開玩笑。以上瞎編胡造,如有雷同,純屬巧合。
這里就只談談前端技術的戰斗回合吧,寫的不好,請多見諒。
普通型
面試中問題會比較的零碎,html/js/css肯定都會有涉及。知識點不會有太大的規律,可能幾個公司面試下來你遇到的問題一個都不帶重復的。哎,前端的知識點就是乍一看深似海,仔細一看深似黑洞啊。問題好的話,一方面考察了面試人對前端接觸的廣度,深度的話也可以從中接觸到一些。因為面試的時間有限,其實也非常考驗面試官對一個人的洞察能力。
一般如果不是應屆生的話,也就是會跟你交流你之前的項目,你擔當的角色,你遇到的難題,怎麼解決問題,用的框架,與其他工程師的交流溝通協作等等。 這些其實你心裡肯定是有答案的(可能也有懵逼的),就看你的表達,能不能對上面試官的胃口。
進階型
除了基本的問題,面試中會有一些明顯設計過的題目。針對某幾個知識點,或讓你手寫代碼,或讓你提供演算法或思路。如果之前沒有遇到過這類問題的話其實一下子真的挺難回答,或者直接懵逼了,或者回答不出面試官滿意的答案。這其實對工程師的要求也是比較的高,不能只是單純的切切頁面,用用插件,需要對某一類問題或者模式或者演算法有深入的了解,對問題的解決思路有很好的把握。
演算法可能不是前端工程師的長項,但作為優秀的工程師,對演算法的了解應該會只深不淺。
這種面試的題目既提現了公司對面試者的要求,也相對而言的會有所體現公司的水平。
出題型
題目比較的綜合,會通過郵件發給你,或者有專門的頁面提供,在面試之前讓你2-3天的時間做完。題目可能是很有名的某一類交互,或游戲,或頁面,或公司自己出的一類小東西。
因為非當場面試,所有有比較充足的時間來思考,來寫一些代碼。一般都會完成,所以其實比較的關注點就是對代碼的質量,通過代碼來考察面試者的思路以及代碼**慣等等。
其未知性也比較多,可能因為有些東西可能沒法通過代碼來傳遞,溝通,其他的思路,或者題目的缺陷等等。所以這只是面試途中的一個小部分,大多數人其實都會能做的很好。
直接上機型
還有的就會直接給你某一個交互,或者一張靜態頁面,或者一個布局等等,直接給你台電腦讓你當場寫出來。寫完之後再有所交流,說說自己的想法或者接著談其他的。
當你寫代碼時候,其實暴露的東西也挺多的。你寫的**慣,思路清晰不清晰,對代碼的熟悉程度,可能你平時都是ctrl C + V的,這時候你咋辦呢。
這個可能遇到的比較少,但也會是有的。
結束語
許多面試可能都會結合以上的幾種類型,多方面的考察面試者,其實,大家都懂的。