當前位置:首頁 » 網頁前端 » web前端開發筆試題答案
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

web前端開發筆試題答案

發布時間: 2023-07-06 10:08:20

1. 有哪些經典的 Web 前端或者 JavaScript 面試筆試題

、定項選擇題 (每題3共30)
1. 聲明象給加name屬性show顯示其name值代碼確( D )
A. var obj = [name:"zhangsan",show:function(){alert(name);}];
B. var obj = {name:zhangsan,show:alert(this.name)};
C. var obj = {name:zhangsan,show:function(){alert(name);}};
D. var obj = {name:zhangsan,show:function(){alert(this.name);}};
2. 關於Array數組象說確( CD )
A. 數組數據排序用sort函數排序效非預期給sort函數加排序函數參數
B. reverse用於數組數據倒序排列
C. 向數組位置加新元素用pop
D. unshift用於向數組刪除第元素
3. 要頁面狀態欄顯示已經選該文本框列JavaScript語句確( A )
A. window.status=已經選該文本框
B. document.status=已經選該文本框
C. window.screen=已經選該文本框
D. document.screen=已經選該文本框
4. 點擊頁面按鈕使打新窗口載入網頁JavaScript代碼行( AD )
A. button value=new
onclick=open(『new.html』, 『_blank』)/>
B. button value=new
onclick=window.location=』new.html』;/>
C. button value=new
onclick=location.assign(『new.html』);/>
D. _blankaction=new.html>
submit value=new/>

5. 使用JavaScript向網頁輸
hello
代碼行( BD )
A. text/javascript>
document.write(
hello
);

B. text/javascript>
document.write(
hello
);

C. text/javascript>

hello

D.

text/javascript>
document.write(hello);

6. 析面代碼:

text/javascript>
function writeIt (value) { document.myfm.first_text.value=value;}

#ffffff>
myfm>
text name=first_text>
text name=second_text>

說確( CD )
A. 頁面第二文本框輸入內容滑鼠離第二文本框第文本框內容變
B. 頁面第文本框輸入內容滑鼠離第文本框第二文本框復制第文本框內容
C. 頁面第二文本框輸入內容滑鼠離第二文本框第文本框復制第二文本框內容
D. 頁面第文本框輸入內容滑鼠離第文本框第二文本框內容變
7. 面JavaScript語句( D )實現檢索前頁面表單元素所文本框並全部清空
A. for(vari=0;i< form1.elements.length;i++) {
if(form1.elements.type==text)
form1.elements.value=";}
B. for(vari=0;i
if(forms[0].elements.type==text)
forms[0].elements.value=";
}
C. if(document.form.elements.type==text)
form.elements.value=";
D. for(vari=0;i
for(var j=0;j
if(document.forms.elements[j].type==text)
document.forms.elements[j].value=";
}
}
8. 表單(form1)文本框元素(fname)用於輸入電號碼格式:010-82668155要求前3位010緊接-面8位數字要求提交表單根據述條件驗證該文本框輸入內容效性列語句( A )能確實現功能
A. var str= form1.fname.value;
if(str.substr(0,4)!=010-|| str.substr(4).length!=8 ||
isNaN(parseFloat(str.substr(4))))
alert(效電號碼);
B. var str= form1.fname.value;
if(str.substr(0,4)!=010- && str.substr(4).length!=8 &&
isNaN(parseFloat(str.substr(4))))
alert(效電號碼);
C. var str= form1.fname.value;
if(str.substr(0,3)!=010-|| str.substr(3).length!=8 ||
isNaN(parseFloat(str.substr(3))))
alert(效電號碼);
D. var str= form1.fname.value;
if(str.substr(0,4)!=010-&& str.substr(4).length!=8 &&
!isNaN(parseFloat(str.substr(4))))
alert(效電號碼);
9. 關於則表達式聲明6位數字郵編代碼確( C )
A. var reg = /\d6/;
B. var reg = \d{6}\;
C. var reg = /\d{6}/;
D. var reg = new RegExp(\d{6});
10. 關於JavaScriptxml處理說明確( BCD )
A. Xml種擴展標記語言格式更規范作未html替代
B. Xml般用於傳輸存儲數據html補充兩者目同
C. JavaScript解析處理xml數據瀏覽器同其做同
D. IE瀏覽器處理xml首先需要創建ActiveXObject象
二、問答題
1. 列舉瀏覽器象模型BOM用至少4象並列舉window象用至少5 (10)
象:Window document location screen history navigator
:Alert() confirm() prompt() open() close()
2. 簡述列舉文檔象模型DOMdocument用查找訪問節點並做簡單說明 (10)
Document.getElementById 根據元素id查找元素
Document.getElementByName 根據元素name查找元素
Document.getElementTagName 根據指定元素名查找元素
三、程序題
1、補充按鈕事件函數確認用戶否退前頁面確認關閉窗口; (10)

text/javascript >
function closeWin(){
//處添加代碼
if(confirm(確定要退)){
window.close();
}
}

buttonvalue=關閉窗口onclick=closeWin()/>

2、寫簡單描述html標簽(帶屬性始標簽結束標簽)則表達式並字元串html標簽除掉(15)
var str = div

面段落

;
//
text/javascript>
varreg = /<\/?\w+\/?>/gi;
varstr = div

面段落

;
alert(str.replace(reg,"));

3、完foo()函數內容要求能夠彈框提示前選第幾單選框(10)

Content-Type content=text/html;charset=utf-8″ />

text/javascript >
function foo() {
//處添加代碼
var rdo =document.form1.radioGroup;
for(var i =0 ;i
if(rdo.checked){
alert(您選擇第+(i+1)+單選框);
}
}
}

form1″ >
radio name=radioGroup/>
radio name=radioGroup/>
radio name=radioGroup/>
radio name=radioGroup/>
submit/>

4、完函數showImg()要求能夠態根據拉列表選項變化更新圖片顯示 (15)

text/javascript >
function showImg (oSel) {
//處添加代碼
var str = oSel.value;
document.getElementById(pic).src= str+.jpg;
}

picsrc=img1.jpgwidth=200″ height=200″ />

sel>
img1>城市
img2>都市早報
img3>青山綠水

2. 有哪些經典的 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/;

3. 誰能給我出一兩道 web前端筆試題 上機題啥的,呵呵,比較常考的

[面試題] 某企業前端開發面試題

【HTML & CSS】

1. Doctype? 嚴格模式與混雜模式-如何觸發這兩種模式,區分它們有何意義?

2. 行內元素有哪些?塊級元素有哪些?CSS的盒模型?

3. CSS引入的方式有哪些? link和@import的區別是?

4. CSS選擇符有哪些?哪些屬性可以繼承?優先順序演算法如何計算?內聯和important哪個優先順序高?

5. 前端頁面有哪三層構成,分別是什麼?作用是什麼?

6. css的基本語句構成是?

7. 你做的頁面在哪些流覽器測試過?這些瀏覽器的內核分別是什麼?經常遇到的瀏覽器的兼容性有哪些?怎麼會出現?解決方法是什麼?

8. 如何居中一個浮動元素?

9. 有沒有關注HTML5和CSS3?如有請簡單說一些您對它們的了解情況!

10. 你怎麼來實現下面這個設計圖,主要講述思路 (效果圖省略)

11. 如果讓你來製作一個訪問量很高的大型網站,你會如何來管理所有CSS文件、JS與圖片?

12. 你對前端界面工程師這個職位是怎麼樣理解的?它的前景會怎麼樣?

【Javascript】

1. js是什麼,js和html 的開發如何結合?

2. 怎樣添加、移除、移動、復制、創建和查找節點

3. 怎樣使用事件以及IE和DOM事件模型之間存在哪些主要差別

4. 面向對象編程:b怎麼繼承a

5. 看看下面alert的結果是什麼
view sourceprint?1.function b(x, y, a) {
.arguments[2] = 10;
.alert(a);
}
b(1, 2, 3);
如果函數體改成下面,結果又會是什麼?
a = 10;
alert(arguments[2] );

6. 請編寫一個JavaScript函數 parseQueryString,它的用途是把URL參數解析為一個對象
var obj = parseQueryString(url);
alert(obj.key0) // 輸出0

7. ajax是什麼? ajax的交互模型? 同步和非同步的區別? 如何解決跨域問題?

8. 什麼是閉包?下面這個ul,如何點擊每一列的時候alert其index?
<ul id=」test」>
<li>這是第一條</li><li>這是第二條</li><li>這是第三條</li>
</ul>

9. 最近看的一篇Javascript的文章是?

10. 常使用的庫有哪些?常用的前端開發工具?開發過什麼應用或組件?

11.說說YSlow(可以詳細一點)

答案在參考資料裡面可以找到,答案在參考資料裡面可以找到,答案在參考資料裡面可以找到

4. 常見的web前端面試題及答案分享

1、 說下行內元素和塊級元素的區別?行內塊元素的兼容性使用?(IE8 以下)


答:行內元素:會在水平方向排列,不能包含塊級元素,設置width無效,height無效(可以設置line-height),margin上下無效,padding上下無效。塊級元素:各占據一行,垂直方向排列。從新行開始結束接著一個斷行。兼容性:display:inline-block;*display:inline;*zoom:1。



2、box-sizing常用的屬性有哪些?分別有什麼作用?


答:box-sizing: content-box|border-box|inherit。content-box:寬度和高度分別應用到元素的內容框。在寬度和高度之外繪制元素的內邊距和邊框(元素默認效果)。


border-box:元素指定的任何內邊距和邊框都將在已設定的寬度和高度內進行繪制。通過從已設定的寬度和高度分別減去邊框和內邊距才能得到內容的寬度和高度。


3、Doctype作用?標准模式與兼容模式各有什麼區別?


答:告知瀏覽器的解析器用什麼文檔標准解析這個文檔。DOCTYPE不存在或格式不正確會導致文檔以兼容模式呈現。


標准模式的排版和JS運作模式都是以該瀏覽器支持的最高標准運行。在兼容模式中,頁面以寬松的向後兼容的方式顯示,模擬老式瀏覽器的行為以防止站點無法工作。


4、html5有哪些新特性?如何處理HTML5新標簽的瀏覽器兼容問題?如何區分 HTML 和 HTML5?


答:HTML5 現在已經不是 SGML 的子集,主要是關於圖像,位置,存儲,多任務等功能的增加。


(1)繪畫 canvas;


(2)用於媒介回放的 video 和 audio 元素;


(3)本地離線存儲 localStorage 長期存儲數據,瀏覽器關閉後數據不丟失;


(4)sessionStorage 的數據在瀏覽器關閉後自動刪除;


(5)語意化更好的內容元素,比如 article、footer、header、nav、section;


(6)表單控制項,calendar、date、time、email、url、search;


(7)新的技術webworker, websocket, Geolocation;


IE8/IE7/IE6支持通過document.createElement方法產生的標簽,可以利用這一特性讓這些瀏覽器支持HTML5新標簽,瀏覽器支持新標簽後,還需要添加標簽默認的樣式。當然也可以直接使用成熟的框架、比如html5shim。


以上就是環球青藤小編關於web前端面試題的相關分享,希望對大家有所幫助,想要了解更多相關內容,請及時關注本平台並進行查看!

5. Web前端開發筆試題

Web前端開發筆試題集錦

Web前端開發筆試題集錦:

1,截取字元串abcdefg的efg

var str = "abcdefg";

if (/efg/.test(str)) {

var efg = str.substr(str.indexOf("efg"), 3);

alert(efg);

}

2, 判斷字元串是否是這樣組成的,第一個必須是字母,後面可以是字母、數字、下劃線,總長度為5-20

var reg = /^[a-zA-Z][a-zA-Z_0-9]{4,19}$/;

reg.test("a1a__a1a__a1a__a1a__");

3,判斷一個字元串中出現次數最多的字元,統計這個次數

//將字元串的`字元保存在一個hash table中,key是字元,value是這個字元出現的次數

var str = "abcdefgaddda";

var obj = {};

for (var i = 0, l = str.length; i < l; i++) {

var key = str[i];

if (!obj[key]) {

obj[key] = 1;

} else {

obj[key]++;

}

}

/*遍歷這個hash table,獲取value最大的key和value*/

var max = -1;

var max_key = "";

var key;

for (key in obj) {

if (max < obj[key]) {

max = obj[key];

max_key = key;

}

}

alert("max:"+max+" max_key:"+max_key);

4,IE與FF腳本兼容性 問題

(1) window.event:

表示當前的事件對象,IE有這個對象,FF沒有,FF通過給事件處理函數傳遞事件對象

(2) 獲取事件源

IE用srcElement獲取事件源,而FF用target獲取事件源

(3) 添加,去除事件

IE:element.attachEvent(onclick, function) element.detachEvent(onclick, function)

FF:element.addEventListener(click, function, true) element.removeEventListener(click, function, true)

(4) 獲取標簽的自定義屬性

IE:div1.value或div1[value]

FF:可用div1.getAttribute(value)

(5) document.getElementByName()和document.all[name]

IE;document.getElementByName()和document.all[name]均不能獲取div元素

FF:可以

(6) input.type的屬性

IE:input.type只讀

FF:input.type可讀寫

(7) 是否可用id代替HTML元素

IE:可以用id來代替HTML元素

FF:不可以

(8) innerText textContent outerHTML

IE:支持innerText, outerHTML

FF:支持textContent

;

6. 騰訊WEB前端筆試題和面試題答案

騰訊WEB前端筆試題和面試題答案

能進入騰訊工作是多少人的夢想,下面我為大家搜集的一篇“騰訊WEB前端筆試題和面試題答案”,供大家參考借鑒,希望可以幫助到有需要的朋友!

一、 耐心填一填!(每空4分,共24分)

1. 為span設置類a與b,應編寫HTML代碼_________。

2. 設置CSS屬性clear的值為_both___________時可清除左右兩邊浮動。

3. ____li________標簽必須直接嵌套於ul、ol中。

4. CSS屬性_____margin_______可為元素設置外補丁。

5. 設置CSS屬性float的值為___none_________時可取消元素的浮動。

6. 文字居中的CSS代碼是____text-align:center________。

二、 精心選一選!(每題4分,共16分)

1. 下列哪個樣式定義後,內聯(非塊狀)元素可以定義寬度和高度( C )

A. display:inline B. display:none C. display:block D. display:inheric

2. 選出你認為最合理的定義標題的方法( C )

A. 文章標題

B.

文章標題

C.

文章標題

D. 文章標題

3. br標簽在XHTML中語義為( A )

A.換行 B.強調 C.段落 D.標題

4. 不換行必須設置( AC )

A.word-break B.letter-spacing C.white-space D.word-spacing

5. 在使用table表現數據時,有時候表現出來的'會比自己實際設置的寬度要寬,為此需要設置下面哪些屬性值( AD )

A. cellpadding=”0″ B. padding:0 C. margin:0 D. cellspacing=”0″

三、判斷對或錯!(每題4分,共24分)

1. CSS屬性font-style 用於設置字體的粗細。 ( × )

2. CSS屬性overflow用於設置元素超過寬度時是否隱藏或顯示滾動條。 ( √ )

3. 在不涉及樣式情況下,頁面元素的優先顯示與結構擺放順序無關。 ( × )

4. 在不涉及樣式情況下,頁面元素的優先顯示與標簽選用無關。 ( √ )

5. display:inline兼容所有的瀏覽器。 ( √ )

6. input屬於窗體元素,層級顯示比flash、其它元素都高。 ( × )

;

7. web前端筆試題(HTML/CSS篇)

web前端筆試題集錦(HTML/CSS篇)

導讀:網頁不再只是承載單一的文字和圖片,各種富媒體讓網頁的內容更加生動,網頁上軟體化的交互形式為用戶提供了更好的使用體驗,這些都是基於前端技術實現的。以下是由我J.L為您整理推薦的前端開發筆試題目,歡迎參考閱讀。

一、HTML/CSS

1,讓一個input的背景顏色變成紅色

2,div的高寬等於瀏覽器可見區域的高寬,瀏覽器滾動,div始終覆蓋瀏覽器的整個可見區域

思路:

(1)先放置一個div1,浮動:position:absolute;top:0px;left:0px;

(2)再放置一個div2,浮動:position:absolute;top:0px;left:0px;width:100%;height:100%;

(3)在div2中放置一個div3,令其高度超過瀏覽器高度,使div2產生滾動條

(4)對html,body進行樣式設置:width:100%;height:100%;overflow:hidden->不讓瀏覽器產生滾動條,避免頁面出現兩個滾動條

(5)編寫JavaScript,另div2的高度等於頁面可見高度,寬度等於頁面可見寬度,注意,在計算完可見高度height和可見寬度width後,要對這兩個值做處理,可見寬度-div2的滾動條的寬度,滾動條的寬度我這里假設是20px

這樣題目基本就完成了,不過瀏覽器的兼容性還不是很好。

3,IE、FF下面CSS的解釋區別

(1) 讓頁面元素居中

ff{margin-left:0px;margin-right:0px;width:***}

ie上面的設置+text-align:center

(2) ff:不支持濾鏡

ie:支持濾鏡

(3) ff:支持!important

ie支持*,ie6支持_

(4) min-width,min-height

FF支持,IE不支持,IE可以用css expression來替代

(5) Css Expression

FF不支持,IE支持

(6) cursor:hand

IE下可以顯示手指狀,FF下不行

(7) UL的默認padding和margin

IE下ul默認有margin,FF下ul默認有padding

(8) FORM的默認margin

IE下FORM有默認margin,FF下margin默認為0

4,一個定寬元素在瀏覽器(IE6,IE7,Firefox)中橫向居中對齊的布局,請寫出主要的.HTML標簽及CSS

思路:

IE6/7:text-align:center

Firefox:margin:0 auto(margin-top和margin-bottom也可以為其他數字,關鍵是margin-left,margin-right為auto)

5,CSS中margin和padding的區別

margin是元素的外邊框,是元素邊框和相鄰元素的距離

Padding是元素的內邊框,是元素邊框和子元素的距離

6,最後一個問題是,如何製作一個combo選項,就是可以輸入可以下拉菜單選擇。

思路:

(1)布局select和input,讓input覆蓋select,除了select的下拉圖標,以方便select選擇

(2)編寫JS,為select添加onchange事件,onchange時將input的value置成select選中的指

7,

中alt和tittle的區別

alt:圖片顯示不出來了就提示alt

title:滑鼠劃過圖片顯示的提示

8,用css、html編寫一個兩列布局的網頁,要求右側寬度為200px,左側自動擴展。

在這里我使用了兩種方式:

(1)使用position

HTML:

left

right

(2) 使用float

HTML:

固定寬度

自適應

二者的CSS公用,如下:

html,body{width:100%;height:100%;margin:0px;padding:0px;}

.container {width:100%;height:400px;position:relative;}

.fl1 {float:left;}

.left {width:100%;height:400px;background:#AFFFD0;position:absolute;}

.right {width:200px;height:400px;background:#F9AFFF;position:absolute;right:0px;top:0px;}

.clear {clear:both;overflow:hidden;height:0px;}

.container2 {width:100%;height:400px;margin-top:100px;}

.left2 {background:#afffd0;height:400px;width:200px;margin-right:-3px;}

.right2 {height:400px;background:#f9afff;}

9,解釋document.getElementByIdx_x_x_x("ElementID").style.fontSize="1.5em"

em是相對長度單位,相當於當前對象內文本的字體尺寸,如果當前行內文本的字體尺寸未被指定,則相對於瀏覽器的默認字體尺寸。

該語句將id為ElementID的元素的字體設置為當前對象內文本的字體尺寸的1.5倍

10,Doctype? 嚴格模式與混雜模式-如何觸發這兩種模式,區分它們有何意義? 行內元素有哪些?塊級元素有哪些?CSS的盒模型?

DOCTYPE是文檔類型,用來說明使用的HTML或者XHTML是什麼版本,其中的DTD叫文檔類型定義,裡麵包含了文檔規則,瀏覽器根據定義的DTD來解析頁面的標識並展現出來

DOCTYPE有兩種用途:一個可以進行頁面的有效性驗證,另一個可以區分瀏覽器使用嚴格模式還是混雜模式來解析CSS。

嚴格模式和混雜模式是瀏覽器解析CSS的兩種模式,目前使用的大部分瀏覽器對這兩種模式都支持,但是IE5隻支持混雜模式。

可那個過DOCTYPE聲明來判斷哪種模式被觸發

(1) 沒有DOCTYPE聲明的網頁採用混雜模式解析

(2) 對使用DOCTYPE聲明的網頁視不同瀏覽器進行解析

(3) 對於瀏覽器不能識別的DOCTYPE聲明,瀏覽器採用嚴格模式解析

(4) 在ie6下,如果在DOCTYPE聲明之前有一個xml聲明比如

,採用混雜模式解析,在IE7,IE8中這條規則不生效。

(5) 在ie下,如果DOCTYPE之前有任何字元,都會導致它進入混雜模式,如:

區分這兩種模式可以理解瀏覽器解析CSS的區別,主要是在盒模式的解釋上。

常見的塊級元素有:DIV,FORM,TABLE,P,PRE,H1~H6,DL,OL,UL等

常見的內聯元素:SPAN,A,STRONG,EM,LABEL,INPUT,SELECT,TEXTAREA,IMG,BR等

CSS盒模型用於描述為一個HTML元素形成的矩形盒子,盒模型還涉及元素的外邊距,內邊距,邊框和內容,具體來講最裡面的內容是元素內容,直接包圍元素內容的是內邊距,包圍內邊距的是邊框,包圍邊框的是外邊距。內邊距,外邊距,邊框默認為0。

11,CSS引入的方式有哪些? link和@import的區別?

引入css的方式有下面四種

(1) 使用style屬性

(2) 使用style標簽

(3) 使用link標簽

(4) 使用@import引入

Link和@import區別:

(1) link屬於XHTML標簽,@import是CSS提供的一種方式。Link除了載入CSS外,還可以做很多事情,如定義RSS,rel連接屬性等;@import只能載入CSS

(2)載入順序不同,當頁面被載入的時候,link載入的CSS隨之載入,而@import引用的CSS會等到頁面完全下載完之後才會載入

(3)兼容性差別,由於@import是CSS2.1提出的,所以老的瀏覽器不支持,IE系列的瀏覽器IE5以上才能識別,而link沒有這個問題

使用DOM控制樣式的差別,使用JavaScript控制DOM去改變樣式的時候,只能操作link,@import不可以被DOM操作。

12,如何居中一個浮動元素?

一個浮動元素裡麵包含的元素可以水平居中,原理如下:

讓浮動元素left相對於父元素container右移50%,浮動元素left的子元素left-child相對於left左移50%就可以實現left-child相對於container水平居中

垂直居中類似,不過操作的不是left而是top

13,HTML5和CSS3的了解情況

有所了解

HTML5和CSS3分別是新推出的HTML和CSS規范,前世是XHTML2和CSS2,目前還在草案階段,不過得到了Apple,Opera,Mozilla,Google,Microsoft不同程度的支持,也開發出了不少基於他們的應用。

HTML5相對於原來的HTML規范有一些變化:

(1)DOCTYPE更簡潔

(2)新增了一些語義化標簽,如article,header,footer,dialog等

(3)新增了一些高級標簽,如,,

CSS3相對於CSS2也新增了不少功能

(1) 選擇器更加豐富

(2) 支持為元素設置陰影

(3) 無需圖片能提供圓角

14,你怎麼來實現下面這個設計圖

(1) 切圖

(2) 布局,採用兩欄布局,分別左浮動

(3) 編寫css代碼

15,css 中id和class如何定義,哪個定義的優先順序別高?

id:#***,***為HTML中定義的id屬性

class:.***,***為HTML中定義的class屬性

id比class的優先順序高

16,用html實現如下表格(不如嵌套實用表格)

三行三列,其中第一行第一列和第二行第一列合並; 第二行第二列和第二行第三列合並(現場畫表)

運行結果如下:

17,web標准網站有那些優點

(1) Web標准網站結構和布局分離,使網站的訪問和維護更加容易

(2) Web標准網站結構,布局以及頁面訪問都標准化,使網站能在更多的web標准設備中訪問,兼容性更好

(3) Web標准網站語義化更好,語義化的XHTML不僅對用戶友好,對搜索引擎也友好。

;

8. web前端筆試題

1. 設置元素浮動後,該元素的 display 值是多少( A )

    A.block B. 不變 C. inline D. inline-block

2. 以下不是 canvas 的⽅方法是( D )

    A.getContext() B. fill() C. stroke() D.controller

3. 不是 input 在 html5 新的類型的是( B )

    A.datetime B. file C. color D. range

4. 對權重排序正確的是( C )

a)  .list .box p

b)  #list .box div span

c)  .list span

d)  #list #box

e)  p:last-child

f)  style

A.f>d>b>a>c>e

C. f>d>b>a>c=e

B. f>d>b>a>e>c

D. f>b>d>a>c=e

5.對 document load 和 document ready 描述正確的是( B )

    A.$(document).ready()是當頁⾯所有資源全部載入完成後,執

    ⾏⼀個函數

    B.如果圖⽚資源較多載入時間較長,onload 後等待執⾏的函數

    需要等待較長時間,所以⼀些效果可能受到影響

    C.onload 是當 DOM ⽂檔樹載入完成後執⾏⼀個函數

    D.⼀般來說 load 會比$(document).ready()較快執⾏

6.["1", "2", "3"].map(parseInt) 答案是多少( A )

    A.[1, NaN, NaN]            B. [1, 2, NaN]

    C.[NaN, NaN, NaN]      D. [1, NaN]

7.以下對 Ajax 描述不正確的是( A )

    A.readyState 屬性請求的狀態,當值為 3 時是正在載入

    B.使用 XML 和 XSLT 進⾏行數據交換及相關操作

    C.總共有 8 種 callback

    D.abort()⽅法,停⽌當前請求

8.var temp=null,alert(typeof temp)彈出的結果是( B )

    A.Null     B. Object     C. Undefined     D. String

1. 對XMLHttpRequest對象的open⽅方法描述錯誤的是(BCD)

    A.在 IE 上使⽤的是 XMLHttpRequest 對象是 ActiveXObject

    B.在 Firefox 上使用的是 XMLHttpRequest 對象是ActiveXObject

    C.XMLHttpRequest 對象只能發送 get 請求

    D.XMLHttpRequest 對象只能發送 post 請求

2. 以下哪些是 javascript 的全局函數(ABC)

    A.parseFloat     B. eval     C. setTimeout     D. alert

3. 對 http 相關內容描述正確的是(BCD)

    A.301 狀態碼是臨時重定向

    B.get ⽅方式只能⽀支持 ASCII 字元

    C.get 在從伺服器上獲取資源,post 重點在向伺服器發送數據

    D.HTTPS 就是 HTTP 加上加密處理理

4. 以下結果正確的是(CD)

    A.typeof undefined= undefined 和 typeof null=null

    B.typeof 「hello」==string typeof 0==Boolean

    C.typeof [1,2,3]=object typeof NaN=undefined

    D.typeof {name:「李華」,age:「23」}=object

5. 以下結果正確的是(AB)

    A.zepto.js 適合移動端的開發,jQuery 適合 PC 端的開發

    B.zepto.js 不支持 ie 瀏覽器器

    C.vue 屬於 mvc 框架

    D.v-bind 實現雙向綁定

6. 對 sass 描述錯誤的是(BD)

    A.sass 和 scss 其實是同⼀一種東⻄,都稱之為 Sass

    B.sass 可以聲明變量符號為&

    C.sass 最終都將轉換成 css ⽂件才被引⽤

    D. sass 不可以擴展和繼承

1. ⽗級⾼寬固定,子級⽔平垂直居中怎麼實現(請用 2 種 flex ⽅

法實現)?

2. 寫出⼀個簡單的$.ajax()的請求方式?

3. 假如移動端設備的尺寸是320px要實現每1rem=16px怎麼實

現?

4.使用 Javascript 列印出 1-10000 之間的所有對稱數(例如 121

1331 等)

5. angular 框架之間的通信⽅式是什麼,⾄少列出三種?

6. vue 的⽣命周期有⼏個階段,簡單說說它們的作用?

9. 你遇到的前端面試題都有什麼

大家好,我是王我。

隨著春節的結束,各個行業也普遍開始了上班的節奏, 不過本人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的使用是一致的


4.v-model雙向數據原理

有一個文本框 通過v-bind綁定了value屬性 值為myname 是我們在vue實例中定義的屬性
傳統我們獲取文本框值方法 可能通過getElementById找到文本框 然後獲取其value屬性
但是vue中直接通過v-bind綁定了value屬性 所以不需要像之前那樣獲取值
所以在後面的按鈕中獲取name值 直接獲取vue實例對象data裡面的myname屬性即可

【數據為尊 ----數據映射到瀏覽器 如果數據v-model後修改(肯定input)然後到數據在有數據映射到瀏覽器頁面 ----映射關系統稱】



5.keepAlive用過嗎?什麼作用?

緩存路由組件


使用的是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.項目經驗,讓你講講做過的項目,遇到的問題和解決之道