前端面試題一

CSS 選擇題 
簡答題  
1  HTML 中定義表格的寬度的時候  80PX 80% 的區別是什麼   
Px表示像素,% 表示站整個也面寬度的百分比
 2   簡述  DIV 元素和 SPAN 元素的區別。   
DIV默認狀況下是分行顯示, SPAN在同行顯示
 3  CSS+DIV 開發  Web 頁面的優點有哪些?   
優勢:  
1)div+css ,這個網頁設計模式中, div承擔了網頁的內容,css承擔了網頁的樣式。這樣就使網頁的內容和樣式的分離開來。有利於頁面的維護升級。  
2)有助於提升搜索引擎親和力(快速找到須要的數據,而不是像在 table中一層層的查找) 
3)有助於頁面的重構(換皮膚如 blog,直接套用另一套樣式就能夠實現,而不用改動網頁腳本。 ) 
缺點:開發效率比較低  
4   有關  CSS 瀏覽器兼容的一道面試題    
請寫出一段代碼實現以下效果:在老的瀏覽器裏面顯示一段藍色文字,新瀏覽器裏面則顯示成紅色的,在 IE6裏面顯示成綠的,IE7裏面顯示成黑色的  由於這個問題不是很嚴謹,只給出可能的答案:
 #content p{color:blue} 
html>body #content p {color:red}
 * html #content p{color:green} 
html>body #content p {*color:black;} 
*的涵意:因爲不一樣的瀏覽器對 CSS的支持及解析結果不同,還因爲 CSS中的優先級的關係。咱們就能夠根據這個來針對不一樣的瀏覽器來寫不一樣的 CSS。這種方式稱之爲CSS Hack。
CSS Hack大體有3 種表現形式, CSS類內部Hack 、選擇器 Hack以及HTML 頭部引用 (if IE)Hack,CSS Hack 主要針對類內部 Hack:好比 IE6 能識別下劃線 "_"和星號" * " ,IE7能識別星號 " * ",但不能識別下劃線"_",而 firefox兩個都不能認識。
選擇器 Hack:好比 IE6 能識別*html .class{}, IE7能識別*+html .class{} 或者*:first-child+html .class{}。
HTML頭部引用(if IE)Hack :針對全部 IE:<!--[if IE]><!-- 您的代碼 --><![endif]-->,針對IE6 及如下版本: <!--[if lt IE 7]><!--您的代碼--><![endif]--> ,這類Hack不只對 CSS生效,對寫在判斷語句裏面的全部代碼都會生效。
書寫順序通常是將識別能力強的瀏覽器的  CSS 寫在前面,如:
好比要分辨 IE6和firefox 兩種瀏覽器,能夠這樣寫:
div{
background:green;/*forfirefox*/
*background:red;/*forIE6*/(bothIE6&&IE7)
}
在IE6中看到是紅色的,在 firefox中看到是綠色的。
在firefox中,因爲不識別 *號標識,因而將以星號開頭的樣式過濾掉,不予理睬,解析獲得的結果是 :div{background:green},因而理所固然這個div的背景是綠色的。
在IE6中,兩個 background樣式都能識別出來,解析獲得的結果是 :div{background:green;*background:red;},因而根據優先級別,處在後面的 red的優先級高,因此div的背景顏色就是紅色的。
CSS hack:區分IE6 ,IE7, firefox
區別 IE6與FF :
background:orange;*background:blue;
區別 IE6與IE7 :
background:green!important;background:blue;
區別 IE7與FF :
background:orange;*background:green;
區別 FF,IE7 ,IE6:
background:orange;*background:green;_background:blue;
background:orange;*background:green!important;*background:blue;
注: IE都能識別*; 標準瀏覽器 (如FF) 不能識別 *;
IE6能識別* ;不能識別 !important;
IE7能識別* ,能識別 !important;
FF不能識別* ,但能識別 !important;
瀏覽器優先級別  :FF<IE7<IE6,CSS hack 書寫順序通常爲 FF IE7 IE6
以: " #demo {width:100px;} "爲例;
#demo {width:100px;} /* 被FIREFOX,IE6,IE7執行 .*/
* html #demo {width:120px;} /* 會被IE6執行 ,以前的定義會被後來的覆蓋 ,因此#demo 的寬度在 IE6就爲120px; */
*+html #demo {width:130px;} /* 會被IE7執行 */
因此最後 ,#demo的寬度在三個瀏覽器的解釋爲 : FIREFOX:100px; ie6:120px; ie7:130px;
IE8  最新 css hack
"\9"   例 :"border:1px \9;". 這裏的 "\9" 能夠區別全部  IE FireFox. (只針對  IE9 Hack
"\0"    IE8 識別, IE6  IE7 不能 .
"*"    IE6 IE7 能夠識別 .IE8   FireFox 不能 .
"_"    IE6 能夠識別 "_",IE7  IE8 FireFox  不能 .
5  Position 的值有哪幾種?默認值又是什麼?   
  1. position 的五種值都是什麼? static, relative, absolute, fixed, inherit
  2. position 的缺省值是什麼?  Static
6   超連接訪問事後  hover 樣式就不出現的問題
被點擊訪問過的超連接樣式不在具備 hover和active 了,解決方法是改變 CSS屬性的排列順序: L-V-H-A 
7  IE6 的雙倍邊距  BUG 
例如 : 
<style type=」text/css」> body {margin:0} 
div { float:left; margin-left:10px; width:200px; height:200px; border:1px solid red } </style> 
浮動後原本外邊距 10px,但IE 解釋爲20px,解決辦法是加上 display:inline
 8   爲何  FF 下文本沒法撐開容器的高度 
標準瀏覽器中固定高度值的容器是不會象 IE6裏那樣被撐開的,那我又想固定高度,又想能被撐開須要怎樣設置呢?辦法就是去掉 he ight設置min-height:200px;  這裏爲了照顧不認識 min-height的IE6  能夠這樣定義:  
div { height:auto!important; height:200px; min-height:200px; } 
9   爲何  web 標準中 IE 沒法設置滾動條顏色了 
原來樣式設置:  
<style type=」text/css」> 
body { scrollbar-face-color:#f6f6f6; scrollbar-highlight-color:#fff; scrollbar-shadow-color:#eeeeee;scrollbar-3dlight-color:#eeeeee; scrollbar-arrow-color:#000;scrollbar-track-color:#fff; scrollbar-darkshadow-color:#fff; } </style> 
解決辦法是將 body換成html 
10 、爲何沒法定義 1px 左右高度的容器
IE6下這個問題是由於默認的行高形成的,解決的方法也有不少,例如: overflow:hidden | zoom:0.08 | line-height:1px
 11 、怎麼樣才能讓層顯示在  FLASH 之上呢
解決的辦法是給 FLASH設置透明: 
<param name=」wmode」 value=」transparent」 />
12 、怎樣使一個層垂直居中於瀏覽器中 
<style type=」text/css」> <!– div { 
position:absolute; top:50%; left:50%; 
margin:-100px 0 0 -100px; width:200px; height:200px; border:1px solid red; } –> </style> 
這裏使用百分比絕對定位,與外補丁負值的方法,負值的大小爲其自身寬度高度除以二  
13 firefox 嵌套  div 標籤的居中問題的解決方法   
假定有以下狀況:  <div id=」a 」> <div id=」 b」> </div> </div> 
若是要實現 b在a 中居中放置,通常只需用 CSS設置a 的text-align屬性爲 center。這樣的方法在IE裏看起來一切  正常;可是在Firefox中 b卻會是居左的。 
解決辦法就是設置 b的橫向margin 爲auto。例如設置 b的CSS 樣式爲: margin: 0 auto;。 
14 FireFox 瀏覽器是否支持  VBScript 腳本?  
不支持  
15 、咱們如今使用的 IE 的版本通常是多少, IE 的英文全稱是什麼?  
Internet Explorer 6.0 SP2/5.5/5.0/6.0 SP1/7.0 beta2/7.0 beta3 都算對。  
16 CSS 規範中,每一條樣式的結束符是  ; (分號)仍是 (冒號)    ?樣式名與樣式值之間的 分隔符是: (冒號)仍是 =(等號)  ? 
;,: 和=均可以
17 CSS 規範中,  . (句點)後面跟一個名稱表明什麼含義?  # (井號)後面跟一個名稱表明
什麼含義?若是要對一個元素設置 CSS樣式,應將CSS 樣式寫在它的什麼屬性內?  
後面跟個名稱表示文檔中全部 class屬性值包含這個名稱的應用其後樣式, #後面跟個名稱表示文檔中 ID爲此名稱的元素應用其後樣式。
 18 、什麼是 CSS ?它的能作些什麼?    
CSS就是一種叫作樣式表(stylesheet)的技術。也有的人稱之爲層疊樣式表( Cascading Stylesheet)。在主頁製做時採用CSS技術,能夠有效地對頁面的佈局、字體、顏色、背景和其它效果實現更加精確的控制。  只要對相應的代碼作一些簡單的修改,就能夠改變同一頁面的不一樣部分,或者頁數不一樣的網頁的外觀和格式。  它的做用能夠達到: 
(1)在幾乎全部的瀏覽器上均可以使用。  
(2)之前一些非得經過圖片轉換實現的功能,如今只要用 CSS就能夠輕鬆實現,從而更快地下載頁面。  
(3)使頁面的字體變得更漂亮,更容易編排,使頁面真正賞心悅目。  (4 )你能夠輕鬆地控制頁面的佈局  。 
(5)你能夠將許多網頁的風格格式同時更新,不用再一頁一頁地更新了。你能夠將站點上全部的網頁風格都使用一個 CSS文件進行控制,只要修改這個 CSS文件中相應的行,那麼整個站點的全部頁面都會隨之發生變更。  
19 CSS 指的是什麼  ? 在網頁製做中爲何要使用  CSS 技術
CSS(Cascading Style Sheets) 也叫層疊樣式表,它是用來控制網頁中一個或多個元素的外觀。在網頁製做中,使用樣式表能夠減小不少具備相同外觀元素的重複設置工做,從而給網頁的設計和維護帶來了很大的方便 ;具體應用是:改變樣式表中元素顯示樣式的定義,則在使用該樣式表的全部網頁中相應元素的顯示樣式都會自動發生改變。       
編程題
JavaScript 選擇題 
20 、如下哪條語句會產生運行錯誤:(  A  
A、 var   obj   =   (   ); B 、 var   obj   =   [   ]; C 、 var   obj   =   {   }; D 、 var   obj   =   /   /; 
21 、如下哪一個單詞不屬於  javascript 保留字:( B  
A、 with B 、 parent C、  class D、 void 
22 、請選擇結果爲真的表達式:(  C  
A、 null   instanceof   Object B 、 null   ===   undefined C、 null   ==   undefined D 、 NaN   ==   NaN  
23 、請選擇對 javascript 理解有誤的: (ABCD) 
A、 JScript 是javascript的簡稱  
B、 javascript 是網景公司開發的一種 Java腳本語言,其目的是爲了簡化 Java的開發難
度 C、  FireFox和IE 存在大量兼容性問題的主要緣由在於他們對 javascript的支持不一樣上 D、  AJAX技術必定要使用javascript技術  
24 foo 對象有  att 屬性,那麼獲取 att 屬性的值,如下哪些作法是能夠的:(  ACE  
A、 foo.att B 、 foo(「 att」) C 、 foo[「 att」] D 、 foo{「 att」} E 、 foo[「 a」+ 」t」 +」t 」]
25 、在不指定特殊屬性的狀況下,哪幾種  HTML 標籤能夠手動輸入文本:(  AB  
A、 <TEXTAREA></TEXTAREA> B 、 <INPUT   type=」text 」/> C、  <INPUT   type=」hidden 」/> D、  <DIV></DIV> 
26 、如下哪些是 javascript 的全局函數:( ABC    
A、 escape B 、 parseFloat C、  eval D、 setTimeout E 、 alert 
27 、關於 IFrame 表述正確的有:  (ABCD) 
A、  經過IFrame,網頁能夠嵌入其餘網頁內容,並能夠動態更改  B、  在相同域名下,內嵌的 IFrame能夠獲取外層網頁的對象  C、  在相同域名下,外層網頁腳本能夠獲取 IFrame網頁內的對象 D、  能夠經過腳本調整IFrame的大小  
28 、關於表格表述正確的有:(  ABCDE  
A、  表格中能夠包含 TBODY元素 B 、 表格中能夠包含 CAPTION元素 C 、 表格中能夠包含多個 TBODY元素 D 、 表格中能夠包含 COLGROUP元素 E 、 表格中能夠包含 COL元素 
29 、關於 IE   window 對象表述正確的有:(  ACD  
A、 window.opener 屬性自己就是指向 window對象
 B、 window.reload() 方法能夠用來刷新當前頁面  
C、 window.location= 」a.html」和 window.location.href=」a.html 」的做用都是把當前頁
面替換成 a.html頁面
 D、  定義了全局變量 g;能夠用window.g 的方式來存取該變量
簡答題  
30 、如何讓一個頁面每 20 秒鐘刷新一次而不用 Javascript?  
可使用 meta refresh標籤來進行刷新。meta 標籤是屬於 HTML文檔的<head> 部分。 例如: <meta http-equiv=」refresh 」 content=」 20″>  以下代碼實現用 meta標籤將頁面轉發到一個新的頁面:  
<meta http-equiv= 」refresh」  content=」2;url=http://www.mianwww.com 」>
 31 HTML 的幾種觸發都是什麼?    
onblur 事件會在對象失去焦點時發生。
 onchange  事件會在域的內容改變時發生。
 onclick 事件會在對象被點擊時發生。  
onfocus 事件在對象得到焦點時發生。  
onkeydown 事件會在用戶按下一個鍵盤按鍵時發生。
 onkeypress  事件會在鍵盤按鍵被按下並釋放一個鍵時發生。
 onkeyup 事件會在鍵盤按鍵被鬆開時發生。  
onmousedown 事件會在鼠標按鍵被按下時發生。
 onmousemove  事件會在鼠標指針移動時發生。  
onmouseout 事件會在鼠標指針移出指定的對象時發生。
 onmouseup  事件會在鼠標按鍵被鬆開時發生。
 32 、說一下 javascript   this 的用法   
一般狀況下 , this表明的是前面提到的Globle Object.也就是 Browser環境時的window Object.  當function做爲某一對象的  method 時, this  表明這個  function 所屬的 object.  下面這段代碼有格錯誤 , 涉及到this 的使用:
 function Employee(a) { 
this.name = a; 
}
function init(){ 
John = Employee(」Johnson」);
 alert(John.name);
 } 
在init()中咱們少了一個 new keyword. 因而這個代碼就會報錯, 由於 Browser把Employee 看成是window obect的一個 method, 裏面的this 指的就是 window object. init()應該改成:
 function init(){ 
John = new Employee(」Johnson」);
 alert(John.name);
 } 
同時咱們也能夠將 Employee的constructor 函數修改 , 防止相似的錯誤: 
function Employee(a) { 
if (!(this instanceof Employee)) 
return new Employee(a);
 this.name = a;
 }
33 、介紹一下 javascript function  的用法   
在 JavaScript中 , function是一種數據類型, 全部的 function都是從buildin 的Function object 衍生的對象 . 因此在JavaScript  中function能夠做爲參數傳遞 , 能夠做爲Object 的property, 也能夠看成函數返回值 . function在JavaScript 中有兩種用法 , 一種是看成constructor,  前面加上 new keyword用來創建對象. 一種是看成 method, 爲其餘對象調用. 
注意 function和method 在中文裏的意思至關 , 在有些語言裏也能夠通用 . 可是在 JavaScript 中, 它們仍是有所區別的 . function自己是是一個對象, 而看成爲一個方法他屬於一個對象時 , 就成爲了一個這個對象的  method, 至關於一個對象種的屬性 . 也就是說method 是相對於一個對象而言的 , function在某些狀況下成爲了一個對象的  method. 
34 JavaScript 面試  - 介紹一下 JavaScript 中的對象。   
JavaScript中的Object 是一組數據的 key-value的集合,  有點相似於  Java中的HashMap,  全部這些數據都是 Object裏的property.  一般狀況下 , JavaScript中創建一個對象用」new」加上 constructor function來實現.  如new Date(), new Object()等. 
var book = new Object(); 
book.name = 「JavaScript is Cool」;
book.author = 「tom」; book.pages = 514; 
上面例子中的 name和page 就是名爲 book的對象中的property.  咱們能夠用 delete來刪除Object 中的 property: 「 delete book.name;」.  除了Object, Date等 buildin的對象外,  咱們能夠寫本身的  constructor function, 而後使用new 就能夠創建本身的對象 . 如上面的book 能夠寫成 :
 function Book (name, author, page) { 
this.name = name;
 this.author = author;
 this.page = page; 
var abook = new Book( 」JavaScript is Cool」 , 「tom 」, 514); 
35 、介紹一下 JavaScript 中的循環引用   
在JavaScript中,當一個 DOM對象包含了一個JavaScript對象的引用 (好比一個事件的function), 同時那個 JavaScript的對象又包含了一個這個 DOM對象的引用,這樣就形成了一個循環引用的結構。例如  
var s = document.createElement(’span’);  document.body.appendChild(s);     
s.onclick=function (){
 s.style.backgroundColor = ‘red’; 
 alert(n); 
}; 
36 、結合 text 這段結構,談談  innerHTML outerHTML innerText  之間的區別。   
innerHTML對象裏面的HTML,outerHTML 包括對象和裏面的  innerText對象裏面的文本  
37 settimeout   setinteval  的區別?  
Settimeout只執行一次 setInteval 沒有次數限制  
38 、生成 1-6 之間的整數?   
var NowFrame; 
NowFrame=Math.random( )*6+1 // 隨機生成一個 1-6之間的小數
NowFrame=parseInt(NowFrame) // 把1-6之間的小數轉化爲整數
39 、請簡述 javascript 腳本的執行原理。   
(1)瀏覽器接收用戶的請求  
(2)向服務請求某個包含 avascript腳本的頁面 
(3)應用服務器端向瀏覽器發送煤響應的消息。  
40 、如何讓一個 DIV 隱藏起來,如何讓一個曾顯示出來   
Diasplay屬性設置成none 
41 isNaN 的做用   
判斷是否爲數字  
42 JAVASCRIPT 中獲取某個元素的方式   
Document.getElementById();  此方法在頁面中搜索  Document.myform.xxx 此方法按照層次結構來獲取  Document.getElementsByName() 此方法用於得到全部的名字相同的元素  
43 JAVASCRIPT 如何彈出一個模式對話框   
window.showModalDialog( 「」) 
44 、在作浮動廣告的時候如何把  DIV 層漂起來  
style=」position:absolute;」 
45 、如何用 JavaScript 隱藏一個超級連接真實的地址?    
代碼示例以下:  
<a onMouseOver= ’window.status=」 http://www.merchant-url-here.com」; return true; ’ onMouseOut=’ window.status=」Done 」; return true;’  href=」http://www.affiliate-url-here.com 」 target=」 _blank」>Link Text Here</a>
 46 、請寫出一個 JavaScript  對象並初始化幾個屬性   
代碼以下:  
var obj = { 
name: 「 IT公司面試手冊」,
address: 「http://www.mianwww.com」, 
outfit: { top: 「naked」, bottom: 「jeans」, shoes: 「hiking sho」 }
 } 
47 Javascript 面試題:如何給一個  Javascript 的對象屬性賦值?如何取得屬性值?    
一個 Javascript對象的屬性能夠用」.」操做符或者數組方式來設置和取得:
代碼以下:  
obj.name =  「IT公司面試手冊」 ;
 obj["name"] =  「IT公司面試手冊」 ; 
取得  屬性的值: var myname = obj.name; var myname = obj["name"]; 
兩種方法的區別是若是屬性的名字若是是保留字的話,用點操做符就會報錯,代碼以下:  obj.for = 「IT 公司面試手冊」;由於 for是保留字,因此會報錯 obj["for"] = 「IT 公司面試手冊」  就不會報錯
 48 Javascript 面試題:如何建立一個  Javascript Object?  
能夠有兩種方式建立一個 Javascript Object, 代碼以下: 
第一種方法: var obj = new Object();
 第二種方法:var ob = {}; 
49 、爲何 Javascript   Java 有相似的名字?  
由於 Javascript語法是基於Java 語法的(鬆散的 ) 
50 、當一個用戶瀏覽一個包含  Javascript 的頁面,那個程序真正的執行了這些代碼?   
用戶機器的瀏覽器程序  
51 、「 2names 」是一個合法的  Javascript 變量名嗎?  
不是的  
52 、請寫出一個 Javascript 數組的定義?  
var txt = new Array( 」tim」 , 「kim 」, 「 jim」) 
53 <noscript> 有什麼做用?
用來在客戶端瀏覽器不支持 Javascript的時候顯示標籤內部的信息  
54 、哪一個事件是在表單元素失去焦點的時候觸發?   
onblur 
55 Javascript 問題:有幾種方法在你的  HTML 頁面裏面潛入一段 Javascript?  
方法有以下幾種:  
<script src=」filename.js」 type=」text/javascript」></script> 
<script src= 」filename.js」  type=」text/javascript 」 charset=」 utf-8″></script>
 也可使用DOM 來包含javascript文件:  
window.onload=function(){ 
if(!document.getElementById || !document.createElement){return;} 
var newjs=document.createElement(’script’); 
newjs.type=’text/javascript’; newjs.src=’myjsfile.js’; 
document.getElementsByTagName(’head’)[0].appendChild(newjs); 
也能夠動態經過 function添加一段javascript 到DOM: // loadscript(’ filepath/myjsfile.js’); 
function loadScript(src) { 
newjs= document.createElement( 「script」 ); 
newjs.src = src; 
newjs.type=’text/javascript’; 
head = document.getElementsByTagName( 「head」 )[0]; 
head.appendChild(newjs); 
也可使用 javascript writeln()來進入一段javascript: 
document.write(」<scr 」+」 ipt 
type=\」text/javascript\」 
src=\」yoursource.js\ 」></scr」 +」ipt> 」);
 56 、如何用 JavaScript 啓動  bat 文件   
<script   language=javascript> 
var   wsh   =   new   ActiveXObject(」WScript.Shell」);
wsh.Run(」C:/*****.bat」); 
</script>
57 、介紹一下 XMLHttpRequest 對象   
經過 XMLHttpRequest對象,Web 開發人員能夠在頁面加載之後進行頁面的局部更新。  AJAX開始流行始於Google在 2005年使用的」Google Suggest 」。 
「Google Suggest」就是使用 XMLHttpRequest對象來建立動態的Web接口:  當用戶開始輸入google的搜索框, Javascript發送用戶輸入的字符到服務器,而後服務器返回一個建議列表。  
XMLHttpRequest對象在IE5.0+, Safari 1.2, Mozilla 1.0/Firefox, Opera 8+  和NetScapt7 開始被支持。  
58 AJAX 的全稱是什麼?    介紹一下 AJAX  
AJAX的全稱是Asynchronous JavaScript And XML. 
AJAX是2005 年由Google發起並流行起來的編程方法,  AJAX不是一個新的編程語言,可是它是一個使用已有標準的新的編程技術。  
使用 AJAX能夠建立更好,更快,更用戶界面友好的 Web應用。 AJAX 技術基於 Javascript和HTTP Request. 
59 、介紹一下 isNaN 函數?  
若是參數不是數字類型的話 isNaN返回true
 60 javascript 都支持哪些布爾型的操做?   
&&, ||和! 
61 、「 1   +2+4 javascript 中獲得什麼?   
由於「 1」是String 類型,因此全部的操做數都是 String, 結果爲124 
62 2+5+   8 ″獲得的結果是什麼?  
由於 2和5 是數字類型, 8是字符串,因此獲得的結果是 78 
63 javascript 有幾種  loop 方法?  
for, while, do-while,  沒有foreach 
64 javascript 如何建立一個新的對象?   
var obj = new Object()  或者 var obj = {} 
65 、如何爲一個對象屬性賦值?   
obj["age"]=17  或者obj.age=17 
66 、如何爲一個數組添加一個值?
arr[arr.length]= value;
67 Javascript 的數據類型有幾種?    
1. Number  數字類型  
2. String  字符串類型  
3. Boolean  布爾類型  
4. Function  函數 
5. Object  對象 
6. Null 
7. Undefined  沒有定義類型  
68 、將字符串用指定字符分割成數組的函數是什麼?   
<script type="text/javascript">
var str="How are you doing today?";
document.write(str.split(" ") + "<br />"); 
document.write(str.split("") + "<br />"); 
document.write(str.split(" ",3));
</script> 
69 Javascript 如何建立對象?   
答:建立對象的例子:
 personObj=new Object()
 personObj.firstname="John" 
personObj.lastname="Doe" 
personObj.age=50 
personObj.eyecolor="blue"
 70 、怎麼取頁面的 element 
document.getElementById( 」id」 )或者 
form.elementName方法根據element  的name來取  
71 、怎麼動態建立 element, 怎麼設置他的鼠標事件  
var myLink = document.createElement('a'); 
var href = document.createAttribute('href'); 
myLink.setAttribute(href,'http://www.mianwww.com');
myLink.innerText ="Go here"; 
var spanAppend = document.getElementById('myDivLink'); 
spanAppend.appendChild(myLink);
72 、如何用 Javascript 判斷上傳文件的大小?    
有幾種方法判斷文件的大小:  
1. 用ActiveX 控件,代碼以下:  
<script type= 」text/javascript」 > 
function getFileSize(path) { 
var fileAO = new ActiveObject(」Scripting.FileSystemObject」); 
alert(」File size is:」 + fileAO.GetFile(path).size); }
 </script> 
2. 能夠利用img 標籤的dynsrc屬性來判斷大小,  dynsrc屬性是用來插入多媒體文件的,格式能夠是 WAV,AVI, MP3等等,  例如<img dynsrc=」 xxx.avi」>  這樣就能夠根據 Image對象的fileSize 屬性來獲得文件的大小,代碼以下:
 <script type= 」text/javascript」 >
 function getFileSize(filePath) { 
var image=new Image(); 
image.dynsrc=filePath; 
alert(image.fileSize); 
</script> 
73 Prototype 如何實現頁面局部定時刷新?    
可使用 Prototype的Ajax.PeriodicalUpdater 來實現頁面的局部刷新。  好比  若是頁面上須要定時刷新的  部分爲<div id= 」refresh」 ></div> 那麼能夠按照以下代碼定時刷新這一部份  
new Ajax.PeriodicalUpdater(’refresh’, ‘/your_url’, { method: ‘get’, insertion: Insertion.Top, frequency: 1, decay: 2 }); 
其中的兩個參數 frequency表示間隔的秒數,缺省狀況下爲 2。decay 表示若是返回的內容相同,則將 frequency的間隔時間加倍,這裏第一次是 1秒,若是返回內容相同則編程兩秒,而後四秒,而後八秒。。。若是每次返回的結果都不同  那麼這個參數就不起做用
74 Prototype 如何更新局部頁面?    
可使用 Ajax.Updater來更新局部頁面,實例以下:  <div id=」company 」></div> 
以上是須要局部更新的容器,使用一下 javascript來操做 
new Ajax.Updater( ’company’ ,'/your_url’,{method: ’get’ }); 
75 Prototype 如何爲一個  Ajax 添加一個參數?   
代碼以下:  
new Ajax.Request(’/your_url’, { method: ‘get’, 
parameters: {name: ‘rainman’, limit: 12} }); 
76 Ajax 請求總共有多少種  Callback?  
Ajax請求總共有八種
Callback 
onSuccess 
 onFailure  
onUninitialized  
onLoading  
onLoaded  
onInteractive  
onComplete  
onException 
77 Prototype 中如何爲一個元素添加一個方法?
Prototype提供的Element.addMethods() 方法能夠  用來爲一個元素添加自定義的方法,若是你有一個對象包含了一些自定義的方法,能夠直接把這個對象傳給 Element.addMethods(); 例如: 
var MyUtils = { 
truncate: function(element, length){ 
element = $(element); 
return element.update(element.innerHTML.truncate(length));
 }, 
updateAndMark: function(element, html){ 
return $(element).update(html).addClassName(’updated’);
  } 
Element.addMethods(MyUtils); // now you can: 
$(’explanation’).truncate(100); 
須要注意的一點就是這些方法的第一個參數必須是這個元素自己,你還能夠在方法的最後返回這個元素  
78 AJAX 都有哪些有點和缺點?    
傳統的 web應用容許用戶填寫表單(form),當提交表單時就向 web服務器發送一個請求。服務器接收並處理傳來的表單,然後返回一個新的網頁。這個作法浪費了許多帶寬,由於在前後兩個頁面中的大部分 HTML代碼每每是相同的。因爲每次應用的交互都須要向服務器發送請求,應用的響應時間就依賴於服務器的響應時間。這致使了用戶界面的響應比本地應用慢得多。  
與此不一樣, AJAX應用能夠僅向服務器發送並取回必需的數據,它使用 SOAP或其它一些基於 XML的 web service接口,並在客戶端採用JavaScript處理來自服務器的響應。由於在服務器和瀏覽器之間交換的數據大量減小,結果咱們就能看到響應更快的應用。同時不少的處理工做能夠在發出請求的客戶端機器上完成,因此 Web服務器的處理時間也減小了。  
使用 Ajax的最大優勢,就是能在不更新整個頁面的前提下維護數據。這使得 Web應用程序更爲迅捷地迴應用戶動做,並避免了在網絡上發送那些沒有改變過的信息。  Ajax不須要任何瀏覽器插件,但須要用戶容許 JavaScript在瀏覽器上執行。就像 DHTML應用程序那樣, Ajax應用程序必須在衆多不一樣的瀏覽器和平臺上通過嚴格的測試。隨着 Ajax的成熟,一些簡化Ajax使用方法的程序庫也相繼問世。一樣,也出現了另外一種輔助程序設計的技術,爲那些不支持 JavaScript的用戶提供替代功能。 
對應用 Ajax最主要的批評就是,它可能破壞瀏覽器後退按鈕的正常行爲 [4]。在動態更新頁面的狀況下,用戶沒法回到前一個頁面狀態,這是由於瀏覽器僅能記下歷史記錄中的靜態頁面。一個被完整讀入的頁面與一個已經被動態修改過的頁面之間的差異很是微妙;用戶一般都但願單擊後退按鈕,就可以取消他們的前一次操做,可是在 Ajax應用程序中,卻沒法這樣作。不過開發者已想出了種種辦法來解決這個問題,當中大多數都是在用戶單擊後退按鈕訪問歷史記錄時,經過創建或使用一個隱藏的 IFRAME來重現頁面上的變動。(例如,當用戶在 Google Maps中單擊後退時,它在一個隱藏的 IFRAME中進行搜索,而後將搜索結果反映到 Ajax元素上,以便將應用程序狀態恢復到當時的狀態。)  一個相關的觀點認爲,使用動態頁面更新使得用戶難於將某個特定的狀態保存到收藏夾中。該問題的解決方案也已出現,大部分都使用 URL片段標識符(一般被稱爲錨點,即 URL中# 後面的部分)來保持跟蹤,容許用戶回到指定的某個應用程序狀態。(許多瀏覽器容許 JavaScript動態更新錨點,這使得Ajax應用程序可以在更新顯示內容的同時更新錨點。)這些解決方案也同時解決了許多關於不支持後退按鈕的爭論。  進行Ajax 開發時,網絡延遲——即用戶發出請求到服務器發出響應之間的間隔——須要慎重考慮。不給予用戶明確的迴應  [5],沒有恰當的預讀數據 [6],或者對 XMLHttpRequest的不恰當處理[7],都會使用戶感到延遲,這是用戶不欲看到的,也是他們沒法理解的 [8]。一般的解決方案是,使用一個可視化的組件來告訴用戶系統正在進行後臺操做而且正在讀取數據和內容。  
一些手持設備(如手機、 PDA等)如今還不能很好的支持 Ajax; 
用JavaScript做的 Ajax引擎,JavaScript 的兼容性和 DeBug都是讓人頭痛的事; Ajax的無刷新重載,因爲頁面的變化沒有刷新重載那麼明顯,因此容易給用戶帶來困擾――用戶不太清楚如今的數據是新的仍是已經更新過的;現有的解決有:在相關位置提示、數據更新的區域設計得比較明顯、數據更新後給用戶提示等 ; 對串流媒體的支持沒有FLASH、 Java Applet好; 
79 Ajax 主要包含了哪些技術?    
Ajax(Asynchronous JavaScript + XML )的定義  
基於 web標準(standards-based presentation )XHTML+CSS的表示;  使用 DOM (Document Object Model)進行動態顯示及交互;  使用 XML  和 XSLT 進行數據交換及相關操做;  使用 XMLHttpRequest  進行異步數據查詢、檢索;  
使用  JavaScript 將全部的東西綁定在一塊兒。英文參見 Ajax的提出者Jesse James Garrett 的原文,原文題目 (Ajax: A New Approach to Web Applications) 。 相似於 DHTML或LAMP ,AJAX不是指一種單一的技術,而是有機地利用了一系列相關的技術。事實上,一些基於 AJAX的「派生/ 合成」式( derivative/composite)的技術正在出現,如「 AFLAX」。 AJAX 的應用使用支持以上技術的 web瀏覽器做爲運行平臺。這些瀏覽器目前包括: Mozilla、Firefox 、Internet Explorer、 Opera、Konqueror 及Safari。可是 Opera不支持XSL 格式對象,也不支持 XSLT。
80 DOM 的優缺點都有什麼?    
DOM的優點主要表如今:易用性強,使用 DOM時,將把全部的XML文檔信息都存於內存中,而且遍歷簡單,支持 XPath,加強了易用性。 
DOM的缺點主要表如今:效率低,解析速度慢,內存佔用量太高,對於大文件來講幾乎不可能使用。另外效率低還表如今大量的消耗時間,由於使用 DOM進行解析時,將爲文檔的每一個 element、attribute 、processing- instrUCtion和 comment都建立一個對象,這樣在 DOM機制中所運用的大量對象的建立和銷燬無疑會影響其效率。  
81 、談談 javascript 數組排序方法  sort() 的使用,重點介紹 sort() 參數的使用及其內部機制  
sort的實現的功能相似JAVA的比較器,數據排序從多維數組的第一維開始排序  能夠本身定義排序方法,很很少的函數  
82 、簡述 DIV 元素和  SPAN 元素的區別。  
DIV有回車,SPAN 沒有 
83 、結合 <span   id= outer ><span   id= inner >text</span></span> 這段結構,談談
innerHTML   outerHTML   innerText  之間的區別。   
innerHTML對象裏面的HTML,outerHTML 包括對象和裏面的  innerText對象裏面的文本 
84 、說幾條 XHTML 規範的內容(至少  3 條)  
屬性加引號,不能有不匹配的標籤,加定義  
85 、對 Web 標準化(或網站重構)知道哪些相關的知識,簡述幾條你知道的  Web 標準?  
W3C標準等 
86 、如何用 Javascript 校驗數字型  ?  
var re=/^\d{1,8}$|\.\d{1,2}$/;
 var str=document.form1.all(i).value; 
var r=str.match(re);
 if (r==null) { 
sign=-4; break; 
} else{
document.form1.all(i).value=parseFloat(str);
 }
87 、主要的 Ajax 框架都有什麼?    
*  Dojo(dojotoolkit.org ); 
* Prototype和Scriptaculous  ( www.prototypejs.org和script.aculo.us);
 * Direct Web Reporting  (getahead.org/dwr);  
* Yahoo! User Interface Library (developer.yahoo.com/yui);
 * Google Web Toolkit  (code.google.com/webtoolkit)。  
*JQuery 
88 AJAX 的優缺點都有什麼?    
一、最大的一點是頁面無刷新,用戶的體驗很是好。  
二、使用異步方式與服務器通訊,具備更加迅速的響應能力。  
三、能夠把之前一些服務器負擔的工做轉嫁到客戶端,利用客戶端閒置的能力來處理,減輕服務器和帶寬的負擔,節約空間和寬帶租用成本。而且減輕服務器的負擔, ajax的原則是「按需取數據」,能夠最大程度的減小冗餘請求,和響應對服務器形成的負擔。
 四、基於標準化的並被普遍支持的技術,不須要下載插件或者小程序。  
ajax的缺點 
一、ajax 不支持瀏覽器 back按鈕。 
二、安全問題 AJAX 暴露了與服務器交互的細節。
 三、對搜索引擎的支持比較弱。  
四、破壞了程序的異常機制。  
五、不容易調試。 
89 Ajax 的工做原理    
Ajax的核心是JavaScript 對象XmlHttpRequest。該對象在 Internet Explorer 5中首次引入,它是一種支持異步請求的技術。簡而言之, XmlHttpRequest使您可使用JavaScript向服務器提出請求並處理響應,而不阻塞用戶。  
90 、談一下 Javascript 中的對象    
JavaScript中的Object 是一組數據的 key-value的集合,  有點相似於 Java中的HashMap,  全部這些數據都是 Object裏的property.  一般狀況下 , JavaScript中創建一個對象用」new」加上 constructor function來實現.  如new Date(), new Object()等. 
var book = new Object();
book.name = 「JavaScript is Cool」; 
book.author = 「tom」; 
book.pages = 514; 
上面例子中的 name和page 就是名爲 book的對象中的property.  咱們能夠用 delete來刪除Object 中的property: 「 delete book.name;」.  除了Object, Date等 buildin的對象外,  咱們能夠寫本身的 constructor function, 而後使用new 就能夠創建本身的對象 . 如上面的book 能夠寫成 : 
function Book (name, author, page) {
 this.name = name; 
this.author = author; 
this.page = page; 
var abook = new Book(」JavaScript is Cool」, 「tom」, 514);
91 Javascript 腳本必須寫在什麼標籤以內。   
<script> 
92 javascript  的優缺點和內置對象    
1)優勢:簡單易用,與Java 有相似的語法,可使用任何文本編輯工具編  寫,只須要瀏覽器就可執行程序,而且事先不用編譯,逐行執行,無需進行嚴格  的變量聲明,並且內置大量現成對象,編寫少許程序能夠完成目標;  
2)缺點:不適合開發大型應用程序;  
3)Javascript  有11 種內置對象:  
Array、String 、Date、 Math、Boolean 、Number、 Function、Global 、Error、 RegExp、Object 。
93   介紹一下  XMLHttpRequest 對象的經常使用方法和屬性    
open(「method 」,」 URL」)  創建對服務器的調用,第一個參數是 HTTP請求     方式能夠爲 GET,POST 或任何服務器所支持的您想調用的方式。  第二個參數是請求頁面的 URL。 
send()方法,發送具體請求 abort()方法,中止當前請求  
readyState屬性    請求的狀態  有5 個可取值  
0=未初始化  ,1=正在加載, 2=以加載,3= 交互中, 4=完成 
responseText 屬性   服務器的響應,表示爲一個串  
reponseXML 屬性  服務器的響應,表示爲 XML 
status     服務器的 HTTP狀態碼,200 對應ok  400對應 not found 
94  XMLHttpRequest 對象在  IE Firefox 中建立方式有沒有不一樣?    
有, IE中經過new ActiveXObject() 獲得,Firefox中經過 new XMLHttpRequest()獲得 
95      Ajax 應用中信息是如何在瀏覽器和服務器之間傳遞的    
Ajax與服務端是經過字符串或者 xml進行交互的 
96  Ajax   javascript 的區別?
javascript是一種在瀏覽器端執行的腳本語言, Ajax是一種建立交互式網頁應用的開發技術  ,它是利用了一系列相關的技術其中就包括 javascript。 Javascript 是由網景公司開發的一種腳本語言,它和 sun公司的java 語言是沒有任何關係的,它們類似的名稱只是一種行銷策略。  
在通常的 web開發中,javascript 是在瀏覽器端執行的,咱們能夠用 javascript控制瀏覽器的行爲和內容。
  
 
 
 
 
注:本文來自互聯網,若有侵權請聯繫刪除
相關文章
相關標籤/搜索