㈠ 有哪些經典的 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>青山綠水
㈡ Web前端5道面試題
1.請說明ECMAScript,JavaScript,Jscript之間的關系?
ECMAScript提供腳本語言必須遵守的規則、
細節和准則,是腳本語言的規范。
比如:ES5,ES6就是具體的一js版本。
JavaScript是ECMAScript的一個分支版本,
JavaScript實現了多數ECMA-262中
描述的ECMAScript規范,但存在少數差異。
JScript是微軟公司對ECMA-262語言規范的
一種實現,除了少數例外(這是為了保持向後兼容),
微軟公司宣稱JScript完全實現了ECMA標准.
關系:
JavaScript和JScript都是ECMAScript的版本分支,
二者在語法上沒有多大的區別;
只不過一個是NetScape公司的,一個是微軟的;
IE系列默認是JScript,其它的則反之用JavaScript。
2.頁面載入過程中可能觸發哪些事件?它們的順序是?
頁面載入時,大致可以分為以下幾個步驟:1)開始解析HTML文檔結構2)載入外部樣式表及JavaScript腳本3)解析執行JavaScript腳本4)DOM樹渲染完成5)載入未完成的外部資源6)頁面載入成功
執行順序:1)documentreadystatechange事件2)documentDOMContentLoaded事件3)windowload事件
3.函數中在聲明變數a前使用a會產生錯誤嗎?為什麼?
不會,JS中能夠進行變數作用域提升,
把所有變數、函數的聲明提升到當前
作用域的最前面,但不進行賦值操作;
所以可能造成獲取的值是undefined。
4.什麼是hash,以及hashchange事件?
先了解下什麼是hash:hash即URL中"#"字元後面的部分。
a)使用瀏覽器訪問網頁時,
如果網頁URL中帶有hash,
頁面就會定位到id(或name)
與hash值一樣的元素的位置;
b)hash還有另一個特點,
它的改變不會導致頁面重新載入;
c)hash值瀏覽器是不會隨請求發送到伺服器端的;
d)通過window.location.hash屬性獲取和設置hash值。
window.location.hash值的變化會直接
反應到瀏覽器地址欄(#後面的部分會發生變化),同時,瀏覽器地址欄hash值的變化也會觸發
window.location.hash值的變化,
從而觸發onhashchange事件。
再來了解下什麼是hashchange事件:
a)當URL的片段標識符更改時,
將觸發hashchange事件(跟在#符號後面的URL部分,包括#符號)b)
hashchange事件觸發時,
事件對象會有hash改變前的URL(oldURL)和hash改變後的URL(newURL)兩個屬性。
5.什麼是CDN,CDN對於網站有什麼意義,它有什麼樣的缺點?
CDN又稱為內容分發網路;本意在於
盡可能避開互聯網上有可能影響數據
傳輸速度和穩定性的瓶頸和環節,
使內容傳輸的更快、更穩定。
主要目的:
解決因分布、帶寬、伺服器性能帶來的訪問延遲問題,
適用於站點加速、點播、直播等場景。
使用戶可就近取得所需內容,解決Internet網路擁擠的狀況,
提高用戶訪問網站的響應速度和成功率。
缺點:
a)實施復雜,投資大;
b)目前大部分的CDN還只是對靜態內容加速,
對動態加速效果不好;
而雙線對動態加速的效果跟靜態是一樣的。
㈢ 求web前端開發筆試題
騰訊WEB前端開發三輪面試經歷及面試題
【一面】~=110分鍾 2013/04/24 11:20 星期三
進門靜坐30分鍾做題。
填空題+大題+問答題
>>填空題
何時接觸電腦 何時接觸前端
運算符 字元串處理 延時 display position XMLHttpRequest 正則
Jquery綁定事件 cookie
>>大題
BOM瀏覽器信息
瀏覽器兼容性舉例
閉包作用與舉例
新聞ul列表,插入3個,獲取index
全文單詞首字母大寫
ajax過程
>>邏輯題
任何時間分針和時針夾角
文章單詞(字母)頻率出現最高
30分鍾等到車概率是70%,那10分鍾呢?
一個班學舞蹈的有75%,學唱歌的有85%,問同時學習舞蹈和唱歌的最多多少,最少多少?
兩個很大數的加法運算
>>我的提問
為什麼不問我框架
你覺得我哪些方面還有欠缺,覺得我如何
如果有望進入二面,什麼時候可以得到通知
>>完了之後一起下樓時
我說其他幾家公司的問題和騰訊的有比較大的區別,
區別是XXXXXX
然後他問我家在哪裡
然後說深圳還是比較適合我
我說但願還能見到你
他笑了笑
【二面】~=40分鍾 2013/04/25 14:00 星期四
面試時間是兩點鍾,兩點過幾分進入了面試官所在的包間。
進去之前樓下簽到的hr要我把一摞草稿紙帶到621房間的面試官,進門給他之後,他說那把大椅子是壞的,
要我往後坐一點(防止向前傾倒)。
開始的時候他沒怎麼說話,埋頭看著我的簡歷,於是我主動開始扯了幾句關於自己的介紹。也不知他聽到沒
有,等我說完,馬上又說:好吧,你先自我介紹下。(一臉黑線...)
期間問了我為什麼不打算考研,為什麼選擇前端,我做的最自豪的事情是什麼。
嘰哩吧啦一陣子後,他要我說說我的人生規劃和職業規劃(頗為蛋疼,這些問題不是應該HR面才會問的么
),我順著他的來,也比較xx的說了一番。
反向代理
輸入網址到出現頁面的過程(IP解析,DNS解析等)
頁面流量
堆棧
接著,問了我-1在計算機中怎麼表示,如何判斷數組A是否為數組B的子集。
然後是一個概率問題,假設長江以北有80W人,長江以南有20W人,A向B打電話算一個電話,如果打了
10W個電話,那麼長江以北打向長江以南的電話有多少個?
沒問太多問題,都是些基礎的,最後他問我有什麼問題。
>>我問了問
為什麼不問我前端的問題
如果通過二面,什麼時候可以給我回復
對我有什麼學習上的建議
面試官留言:「一把刀有刀鋒和刀背,刀鋒要磨銳利,但是刀背的鍛煉也要加強。」
【HR面】~=30分鍾 2013/04/27 20:00 星期六
進去先看上幾位面試官對我的評價,安靜時刻我跟她扯淡了幾句,緩和了下尷尬的氣氛。
然後她瞄了瞄我的簡歷,接著就問我考不考研,很明顯我的答案是不。然後她又問為什麼~
接著讓我說說自己最滿意的一件事和最不滿意的一件事,自己最大的缺點和最大的優點
扯了半天之後(此處略去20分鍾扯淡),又開始看我的簡歷,問了我項目中遇到哪些困難,我說了一個還未
解決的bug,她反問為什麼不解決,然後嘰哩吧啦了一陣子。
最後問我有沒有什麼問題。按慣例,問了問最早什麼時候給通知,然後問了問期間如果有不明白問題可以通過
什麼方式聯系她之類的。
整個過程還算順利。
HR告訴我五一之後可以查詢錄取狀態,求人品吧~
順便把在搜狐和網易的面試筆試經歷也說說吧~
>>搜狐
搜狐的太久了,記不太清楚了
那次只為攢經驗,是俺平生第一次參加公司面試。不過收獲還是有的~
時間太久了,也記不清了,沒有提交筆試題,但是還是要我去面試了。
問他有幾輪面試,告訴我因時間匆忙,只給一輪技術面,如果滿意直接HR。
大概問題記不太清。
雖然感覺答的還不錯,但是最後還是被刷了。
【技術面】~=60分鍾
-問了下我在團隊學了些什麼。
-然後就是很多「你是怎麼理解XX」。。
-XX中有 閉包,原型鏈, 框架結構等
>>網易
今天4.27,好像是3.26參加的面試,時間太久,也記得不是很清楚了。
我沒有把任何面試官當做正經的面試官,男的就是我的學長,女的就是我的學姐,僅此而已,所以每次交流都是平和的心態。
學長們(每次面我的都是個男的)時不時露出笑意,現場氣氛沒有那麼緊張。
【一面】 ~=30分鍾
閉包
IE6趨勢
框架
【二面】 ~=90分鍾
框架比較 jQuery prototype YUI
框架特點
css兼容性 IE6 bug
seaJS AMD CMD kissy
JS原型鏈 閉包
JS基礎細節
不讓談網路框架
【HR面】~=25分鍾
自我介紹
身邊人的評價
最不滿意的一件事情
規劃
為什麼不想考研
有什麼困難
薪資待遇
何時通知
㈣ 《web前端開發基礎》作業考核試題有答案
1
請為元素①⑤選擇右例最合適的使用場景,將配對好的a-cô寫到括弧中
收集用戶捅入的文字信息
㈤ 求web前端開發筆試題
最低0.27元/天開通網路文庫會員,可在文庫查看完整內容>
原發布者:觸不可及112
Web前端開發系班級姓名成績1、目前常用的WEB標准靜態頁面語言是________。2、改變元素的外邊距用________,改變元素的內填充用________。3、在Table中,TR是________,TD是________。4、如果給一行兩列的表格(table)定義高度樣式,在________標簽中定義最合理,最能減少代碼的臃腫。5、對ulli的樣式設成無,應該是用什麼屬性________。6、在新窗口打開鏈接的方法是________。7、合理的頁面布局中常聽過結構與表現分離,那麼結構是________,表現是________。1、在下面的XHTML中,哪個可以正確地標記折行?A:
B:C:
2、下列哪些是格式良好的XHTML?A:Ashortparagraph
B:
Ashortparagraph
C:
Ashortparagraph3、在以下的HTML中,哪個是正確引用外部樣式表的方法?A:B:css"href="mystyle.css">C:mystyle.css4、在HTML文檔中,引用外部樣式表的正確位置是?A:文檔的末尾 B:文檔的頂部C:部分D:部分1、請寫出超鏈接的順序或者你在初始樣式中的鏈接方法。(10分)2、當float和margin同時使用時,IE6的雙倍邊距BUG如何解決?(6分)3、為什麼無法定義1px左右高度的容器?(7分)4、Firefox中標簽的居中問題的解決方法
㈥ 有哪些經典的 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/;
㈦ Web前端開發技術題 ,列舉你知道的CSS選擇器及其用法,並按優先順序排序。
選擇器 例子 描述
.class .intro 選擇 class="intro" 的所有元素。
#id #firstname 選擇 id="firstname" 的所有元素。
* * 選擇所有元素。
element p 選擇所有 <p> 元素。
element,element div,p 選擇所有 <div> 元素和所有 <p> 元素。
element element div p 選擇 <div> 元素內部的所有 <p> 元素。
element>element div>p 選擇父元素為 <div> 元素的所有 <p> 元素。
element+element div+p 選擇緊接在 <div> 元素之後的所有 <p> 元素。
[attribute] [target] 選擇帶有 target 屬性所有元素。
[attribute=value] [target=_blank] 選擇 target="_blank" 的所有元素。
[attribute~=value] [title~=flower] 選擇 title 屬性包含單詞 "flower" 的所有元素。
[attribute|=value] [lang|=en] 選擇 lang 屬性值以 "en" 開頭的所有元素。
:link a:link 選擇所有未被訪問的鏈接。
:visited a:visited 選擇所有已被訪問的鏈接。
:active a:active 選擇活動鏈接。
:hover a:hover 選擇滑鼠指針位於其上的鏈接。
:focus input:focus 選擇獲得焦點的 input 元素。
:first-letter p:first-letter 選擇每個 <p> 元素的首字母。
:first-line p:first-line 選擇每個 <p> 元素的首行。
:first-child p:first-child 選擇屬於父元素的第一個子元素的每個 <p> 元素。
:before p:before 在每個 <p> 元素的內容之前插入內容。
:after p:after 在每個 <p> 元素的內容之後插入內容。
element1~element2 p~ul 選擇前面有 <p> 元素的每個 <ul> 元素。
[attribute^=value] a[src^="https"] 選擇其 src 屬性值以 "https" 開頭的每個 <a> 元素。
[attribute$=value] a[src$=".pdf"] 選擇其 src 屬性以 ".pdf" 結尾的所有 <a> 元素。
[attribute*=value] a[src*="abc"] 選擇其 src 屬性中包含 "abc" 子串的每個 <a> 元素。
:first-of-type p:first-of-type 選擇屬於其父元素的首個 <p> 元素的每個 <p> 元素。
:last-of-type p:last-of-type 選擇屬於其父元素的最後 <p> 元素的每個 <p> 元素。
:only-child p:only-child 選擇屬於其父元素的唯一子元素的每個 <p> 元素。
:nth-child(n) p:nth-child(2) 選擇屬於其父元素的第二個子元素的每個 <p> 元素。
:nth-last-child(n) p:nth-last-child(2) 同上,從最後一個子元素開始計數。
:nth-of-type(n) p:nth-of-type(2) 選擇屬於其父元素第二個 <p> 元素的每個 <p> 元素。
:nth-last-of-type(n) p:nth-last-of-type(2) 同上,但是從最後一個子元素開始計數。
:last-child p:last-child 選擇屬於其父元素最後一個子元素每個 <p> 元素。
:empty p:empty 選擇沒有子元素的每個 <p> 元素(包括文本節點)。
:target #news:target 選擇當前活動的 #news 元素。
:enabled input:enabled 選擇每個啟用的 <input> 元素。
:disabled input:disabled 選擇每個禁用的 <input> 元素
:checked input:checked 選擇每個被選中的 <input> 元素。
:not(selector) :not(p) 選擇非 <p> 元素的每個元素。
㈧ 求web前端面試題庫及答案
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)
10.寫出幾種IE6 BUG的解決方法
1.雙邊距BUG float引起的 使用display
2.3像素問題 使用float引起的 使用dislpay:inline -3px
3.超鏈接hover 點擊後失效 使用正確的書寫順序 link visited hover active
4.Ie z-index問題 給父級添加position:relative
5.Png 透明 使用js代碼 改
6.Min-height 最小高度 !Important 解決』
7.select 在ie6下遮蓋 使用iframe嵌套
8.為什麼沒有辦法定義1px左右的寬度容器(IE6默認的行高造成的,使用over:hidden,zoom:0.08 line-height:1px)
㈨ 有哪些經典的 Web 前端或者 JavaScript 面試筆試題
HTML、CSS部分
8.html5\CSS3有哪些新特性、移除了那些元素?如何處理HTML5新標簽的瀏覽器兼容問題?如何區分 HTML 和 HTML5?
HTML5 現在已經不是 SGML 的子集,主要是關於圖像,位置,存儲,地理定位等功能的增加。
* 繪畫 canvas 元素
用於媒介回放的 video 和 audio 元素
本地離線存儲 localStorage 長期存儲數據,瀏覽器關閉後數據不丟失;
sessionStorage 的數據在瀏覽器關閉後自動刪除
語意化更好的內容元素,比如 article、footer、header、nav、section
表單控制項,calendar、date、time、email、url、search
CSS3實現圓角,陰影,對文字加特效,增加了更多的CSS選擇器 多背景 rgba
新的技術webworker, websockt, Geolocation
移除的元素
純表現的元素:basefont,big,center,font, s,strike,tt,u;
對可用性產生負面影響的元素:frame,frameset,noframes;
* 是IE8/IE7/IE6支持通過document.createElement方法產生的標簽,
可以利用這一特性讓這些瀏覽器支持HTML5新標簽,
瀏覽器支持新標簽後,還需要添加標簽默認的樣式:
* 當然最好的方式是直接使用成熟的框架、使用最多的是html5shim框架
<!--[if lt IE 9]>
<script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script>
<![endif]-->
9.你怎麼來實現頁面設計圖,你認為前端應該如何高質量完成工作? 一個滿屏 品 字布局 如何設計?
* 首先劃分成頭部、body、腳部;。。。。。
*
實現效果圖是最基本的工作,精確到2px;
與設計師,產品經理的溝通和項目的參與
做好的頁面結構,頁面重構和用戶體驗
處理hack,兼容、寫出優美的代碼格式
針對伺服器的優化、擁抱 HTML5。
10.常使用的庫有哪些?常用的前端開發工具?開發過什麼應用或組件?
* 使用率較高的框架有jQuery、YUI、Prototype、Dojo、Ext.js、Mootools等。尤其是jQuery,超過91%。
輕量級框架有Modernizr、underscore.js、backbone.js、Raphael.js等。
(理解這些框架的功能、性能、設計原理)
* Sublime Text 、Eclipse、Notepad、Firebug、HttpWatch、Yslow。
* 城市選擇插件,汽車型號選擇插件、幻燈片插件。彈出層。(寫過開源程序,載入器,js引擎更好)
JavaScript原型,原型鏈 ? 有什麼特點?
* 原型對象也是普通的對象,是對象一個自帶隱式的 __proto__ 屬性,原型也有可能有自己的原型,如果一個原型對象的原型不為null的話,我們就稱之為原型鏈。
* 原型鏈是由一些用來繼承和共享屬性的對象組成的(有限的)對象鏈。
* JavaScript的數據對象有那些屬性值?
writable:這個屬性的值是否可以改。
configurable:這個屬性的配置是否可以刪除,修改。
enumerable:這個屬性是否能在for…in循環中遍歷出來或在Object.keys中列舉出來。
value:屬性值。
* 當我們需要一個屬性的時,Javascript引擎會先看當前對象中是否有這個屬性, 如果沒有的話,就會查找他的Prototype對象是否有這個屬性。
function clone(proto) {
function Dummy() { }
Dummy.prototype = proto;
Dummy.prototype.constructor = Dummy;
return new Dummy(); //等價於Object.create(Person);
}
function object(old) {
function F() {};
F.prototype = old;
return new F();
}
var newObj = object(oldObject);
12.列出display的值,說明他們的作用。position的值, relative和absolute定位原點是?
1. block 象塊類型元素一樣顯示。
none 預設值。向行內元素類型一樣顯示。
inline-block 象行內元素一樣顯示,但其內容象塊類型元素一樣顯示。
list-item 象塊類型元素一樣顯示,並添加樣式列表標記。
2.
*absolute
生成絕對定位的元素,相對於 static 定位以外的第一個父元素進行定位。
*fixed (老IE不支持)
生成絕對定位的元素,相對於瀏覽器窗口進行定位。
*relative
生成相對定位的元素,相對於其正常位置進行定位。
* static 默認值。沒有定位,元素出現在正常的流中
*(忽略 top, bottom, left, right z-index 聲明)。
* inherit 規定從父元素繼承 position 屬性的值。
13.頁面重構怎麼操作?
編寫 CSS、讓頁面結構更合理化,提升用戶體驗,實現良好的頁面效果和提升性能。
14.語義化的理解?
html語義化就是讓頁面的內容結構化,便於對瀏覽器、搜索引擎解析;
在沒有樣式CCS情況下也以一種文檔格式顯示,並且是容易閱讀的。
搜索引擎的爬蟲依賴於標記來確定上下文和各個關鍵字的權重,利於 SEO。
使閱讀源代碼的人對網站更容易將網站分塊,便於閱讀維護理解。
15.HTML5的離線儲存?
localStorage 長期存儲數據,瀏覽器關閉後數據不丟失;
sessionStorage 數據在瀏覽器關閉後自動刪除。
16.為什麼要初始化CSS樣式。
因為瀏覽器的兼容問題,不同瀏覽器對有些標簽的默認值是不同的,如果沒對CSS初始化往往會出現瀏覽器之間的頁面顯示差異。
當然,初始化樣式會對SEO有一定的影響,但魚和熊掌不可兼得,但力求影響最小的情況下初始化。
*最簡單的初始化方法就是: * {padding: 0; margin: 0;} (不建議)
淘寶的樣式初始化:
body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td { margin:0; padding:0; }
body, button, input, select, textarea { font:12px/1.5tahoma, arial, \5b8b\4f53; }
h1, h2, h3, h4, h5, h6{ font-size:100%; }
address, cite, dfn, em, var { font-style:normal; }
code, kbd, pre, samp { font-family:couriernew, courier, monospace; }
small{ font-size:12px; }
ul, ol { list-style:none; }
a { text-decoration:none; }
a:hover { text-decoration:underline; }
sup { vertical-align:text-top; }
sub{ vertical-align:text-bottom; }
legend { color:#000; }
fieldset, img { border:0; }
button, input, select, textarea { font-size:100%; }
table { border-collapse:collapse; border-spacing:0; }
17.(寫)描述一段語義的html代碼吧。
(HTML5中新增加的很多標簽(如:<article>、<nav>、<header>和<footer>等)
就是基於語義化設計原則)
< div id="header">
< h1>標題< /h1>
< h2>專注Web前端技術< /h2>
< /div>
語義 HTML 具有以下特性:
文字包裹在元素中,用以反映內容。例如:
段落包含在 <p> 元素中。
順序表包含在<ol>元素中。
從其他來源引用的大型文字塊包含在<blockquote>元素中。
HTML 元素不能用作語義用途以外的其他目的。例如:
<h1>包含標題,但並非用於放大文本。
<blockquote>包含大段引述,但並非用於文本縮進。
空白段落元素 ( <p></p> ) 並非用於跳行。
文本並不直接包含任何樣式信息。例如:
不使用 <font> 或 <center> 等格式標記。
類或 ID 中不引用顏色或位置。
18.absolute的containing block計算方式跟正常流有什麼不同?
19.position跟display、margin collapse、overflow、float這些特性相互疊加後會怎麼樣?
20.對BFC規范的理解?(W3C CSS 2.1 規范中的一個概念,它決定了元素如何對其內容進行定位,以及與其他元素的關 系和相互作用。)
21.iframe有那些缺點?
*iframe會阻塞主頁面的Onload事件;
*iframe和主頁面共享連接池,而瀏覽器對相同域的連接有限制,所以會影響頁面的並行載入。
使用iframe之前需要考慮這兩個缺點。如果需要使用iframe,最好是通過javascript
動態給iframe添加src屬性值,這樣可以可以繞開以上兩個問題。
22.css定義的權重
以下是權重的規則:標簽的權重為1,class的權重為10,id的權重為100,以下例子是演示各種定義的權重值:
/*權重為1*/
div{
}
/*權重為10*/
.class1{
}
/*權重為100*/
#id1{
}
/*權重為100+1=101*/
#id1 div{
}
/*權重為10+1=11*/
.class1 div{
}
/*權重為10+10+1=21*/
.class1 .class2 div{
}
如果權重相同,則最後定義的樣式會起作用,但是應該避免這種情況出現
23.eval是做什麼的?
它的功能是把對應的字元串解析成JS代碼並運行;
避免使用eval,不安全,非常耗性能(2次,一次解析成js語句,一次執行)。
23.寫一個通用的事件偵聽器函數
`// event(事件)工具集,來源:https://github.com/markyun
markyun.Event = {
// 頁面載入完成後
readyEvent : function(fn) {
if (fn==null) {
fn=document;
}
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = fn;
} else {
window.onload = function() {
oldonload();
fn();
};
}
},
// 視能力分別使用dom0||dom2||IE方式 來綁定事件
// 參數: 操作的元素,事件名稱 ,事件處理程序
addEvent : function(element, type, handler) {
if (element.addEventListener) {
//事件類型、需要執行的函數、是否捕捉
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent('on' + type, function() {
handler.call(element);
});
} else {
element['on' + type] = handler;
}
},
// 移除事件
removeEvent : function(element, type, handler) {
if (element.removeEnentListener) {
element.removeEnentListener(type, handler, false);
} else if (element.datachEvent) {
element.detachEvent('on' + type, handler);
} else {
element['on' + type] = null;
}
},
// 阻止事件 (主要是事件冒泡,因為IE不支持事件捕獲)
stopPropagation : function(ev) {
if (ev.stopPropagation) {
ev.stopPropagation();
} else {
ev.cancelBubble = true;
}
},
// 取消事件的默認行為
preventDefault : function(event) {
if (event.preventDefault) {
event.preventDefault();
} else {
event.returnValue = false;
}
},
// 獲取事件目標
getTarget : function(event) {
return event.target || event.srcElement;
},
// 獲取event對象的引用,取到事件的所有信息,確保隨時能使用event;
getEvent : function(e) {
var ev = e || window.event;
if (!ev) {
var c = this.getEvent.caller;
while (c) {
ev = c.arguments[0];
if (ev && Event == ev.constructor) {
break;
}
c = c.caller;
}
}
return ev;
}
};
24.99%的網站都需要被重構是那本書上寫的?
* 網站重構:應用web標准進行設計(第2版)
25.什麼叫優雅降級和漸進增強?
優雅降級:Web站點在所有新式瀏覽器中都能正常工作,如果用戶使用的是老式瀏覽器,則代碼會檢查以確認它們是否能正常工作。由於IE獨特的盒模型布局問題,針對不同版本的IE的hack實踐過優雅降級了,為那些無法支持功能的瀏覽器增加候選方案,使之在舊式瀏覽器上以某種形式降級體驗卻不至於完全失效.
漸進增強:從被所有瀏覽器支持的基本功能開始,逐步地添加那些只有新式瀏覽器才支持的功能,向頁面增加無害於基礎瀏覽器的額外樣式和功能的。當瀏覽器支持時,它們會自動地呈現出來並發揮作用。
26.Node.js的適用場景
高並發、聊天、實時消息推送
27.WEB應用從伺服器主動推送Data到客戶端有那些方式? html5 websoket
WebSocket通過Flash
XHR長時間連接
XHR Multipart Streaming
不可見的Iframe
<script>標簽的長時間連接(可跨域)