JS面試題及答案
一、JS閉包。
f = function() {return true;};
g = function() {return false;};
(function() {
if (g() && [] == ![]) {
f = function f() {return false;};
function g() {return true;}
}
})();
alert(f()); // true or false ?
------------------------
答案:
(function() {
if (g() && [] == ![]) {
//應該看成if((g() && [] )== ![])
//因為g()是false後面那個&&[]就沒起作用 整個都是false
//![]也是false 所以if成立 進入if塊內
f = function f() {return false;};
//重新定義f
function g() {return true;}
//這句沒用
}
})();
alert(f());
//false
二、擷取字串abcdefg的efg
abcdefg
<script type="text/javascript">
var mytext=document.getElementByIdx_x_x("text");
var myvalue=mytext.innerHTML;
var jiequ=myvalue.substring(myvalue.length-3,myvalue.length);
alert(jiequ)
</script>
三、寫出一下運算結果
alert(typeof(null)) // object
alert(typeof(undefined)) // undefined
alert(typeof(NaN)) // number
alert(NaN==undefined) // false
alert(NaN==NaN) // false
var str="123abc";
alert(typeof(str++)) // number
alert(str) // NaN
四、寫出函式DateDemo的返回結果,系統時間假定為今天
function DateDemo(){
var d, s="今天日期是:";
d = new Date();
s += d.getMonth() + "/";
s += d.getDate() + "/";
s += d.getYear();
return s;
}
結果:今天日期是:7/17/2010
五、寫出程式執行的結果?
for(i=0, j=0; i<10, j<6; i++, j++){
k = i + j;
1.以下哪個在JAVASCRIPT中會報錯:
var a=();
var a=[];
var a={};
var a=//;
2.JAVA中有哪些保留字,越多越好,10個以上.
3.CSS中有幾種宣告方式.
4.寫出你所知道的開源專案或軟體,並說明他們的好處以及作用.
最佳答案
1,var a=();var a=//; 報錯 兩個不行! --------------------------------- 2,JAVA! int char while for do switch void double float unsigned long try abstract super extent bool break case catch class delegate foreach in static void public private protected internal 等等 太多了 3, 這題有點不知道怎麼答,到底宣告是什麼意思? 是宣告一個已經存在一個CSS有三種: 1.匯入一個已經存在的CSS檔案 <link rel="stylesheet" type="text/css" href=""> 2.直接在HARD裡宣告一個CSS程式碼段: <style type="text/css"> ..... </style> 3.直接在網頁元素裡宣告使用CSS: style="color:red;" 如果是宣告CSS類 , 則有三種: 直接標籤名作為CSS類名稱: TagName{ ... } 以元素ID作為CSS類宣告: #ID{...} 自定義CSS類名稱 : .ClassName{} -------------------------------------------------------------- 4,開源的 客戶端指令碼的話就說說 ExtJS 她可以用來開發RIA也即富客戶端的AJAX應用,是一個用javascript寫的,主要用於建立前端使用者介面,是一個與後臺技術無關的前端ajax框架。因此,可以把ExtJS用在.Net、Java、Php等各種開發語言開發的應 用中。 而且,使用這個框架可以直接用一行程式碼實現非常漂亮的而且標準的網頁控制元件介面,可以使用程式碼呼叫的控制元件來替代目前的流行網頁佈局,和WinForm程式一樣,使得前端開發完全控制元件化。 Jquery也是優秀的前臺框架,優點: 程式碼簡練、語義易懂、學習快速、文件豐富。 jQuery是一個輕量級的指令碼,其程式碼非常小巧,最新版的JavaScript包只有20K左右。 jQuery支援CSS1-CSS3,以及基本的xPath。 jQuery是跨瀏覽器的,它支援的瀏覽器包括IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+。 可以很容易的為jQuery擴充套件其他功能。 能將JS程式碼和HTML程式碼完全分離,便於程式碼和維護和修改。 外掛豐富,除了jQuery本身帶有的一些特效外,可以通過外掛實現更多功能,如表單驗證、tab導航、拖放效果、表格排序、DataGrid,樹形選單、影像特效以及ajax上傳等。 除此之外,還有ProtoType,Bindows(JS框架) 服務,ZedGragh(.Net做統計圖的),Spring,Hibernate,Structs,EJB,Jbmp等比較有名的
網易JS面試題引起的討論
2012-02-05 23:58
第一道:
var tt = 'aa';
function test(){
alert(tt); //underfined;
var tt = 'dd';
alert(tt); //dd
}
test();
第二道:
var myObject= {
num: 2,
add: function(){
this.num=3;
(function(){
alert(this.num); //underfined
this.num=4;
})();
alert(this.num) //3
}
}
myObject.add();
本文主要是講預編譯。
1. undefined
當需要判斷一個變數是否為 undefined 時,直接用
Js程式碼
1. alert(om == undefined);
alert(om == undefined);
可能出錯。因為 JS 如果引用未宣告的變數,那麼會出現JS錯誤,在上述例子中,如果 om 未曾宣告,就會報 JS 錯誤。因此判斷一個變數是 undefined,最好用這種方法
Js程式碼
1. alert( typeof om == 'undefined' );
alert(typeof om == 'undefined');
2. JS 中沒有塊作用域,在函式中宣告的變數在整個函式中都可用(無論是在函式開頭處宣告還是末尾處宣告),如
Js程式碼
function() {
alert(om); // 顯示 undefined
var om = 'abc';
alert(om); // 顯示 abc
}
3. JS 在函式執行前將整個函式的變數進行宣告,無論這個變數的宣告語句有沒有機會執行,如
Js程式碼
1. function () {
2. alert(om); // 顯示 undefined
3. if ( false ) {
4. var om = 'abc' ; // 此處宣告沒有機會執行
5. }
6. }
======================================================================
今天工作需要,搜尋下JS面試題,看到一個題目,大約是這樣的
Js程式碼
<script>
var x = 1, y = z = 0;
function add(n) {
n = n+1;
}
y = add(x);
function add(n) {
n = n + 3;
}
z = add(x);
</script>
問執行完畢後 x, y, z 的值分別是多少?
仔細看的人馬上就知道了, x, y 和 z 分別是 1, undefined 和 undefined。
不過,如果將兩個 add 函式修改一下,題目變為
Js程式碼
<script>
var x = 1, y = z = 0;
function add(n) {
return n = n+1;
}
y = add(x);
function add(n) {
return n = n + 3;
}
z = add(x);
</script>
那麼這時 y 和 z 分別是什麼呢?我馬上想到是 2 和 4,不過結果卻是 4 和 4。
這說明,在第一次呼叫 add 函式之前,第二個 add 函式已經覆蓋了第一個 add 函式。原來,這是 JS 直譯器的"預編譯",JS 解析器在執行語句前會將函式宣告和變數定義進行"預編譯",而這個"預編譯",並非一個頁面一個頁面地"預編譯",而是一段一段地預編譯,所謂的段就是一個 <script> 塊。且看下面的程式碼
Js程式碼
<script>
function add(n) {
return n = n+1;
}
alert(add(1));
</script>
<script>
function add(n) {
return n = n+3;
}
alert(add(1));
</script>
會分別彈出 2 和 4。
那麼,將上面的題目再變換一下,如下
Js程式碼
<script>
alert(typeof addA);
addA();
function addA() {
alert("A executed!");
};
</script>
<script>
alert(typeof addB);
addB();
var addB = function() {
alert("B executed!");
};
</script>
執行結果是什麼呢? 按照前面的知識,第一個 <script> 塊執行正常,結果就是彈出 "function" 和 "A executed!" 的對話方塊。
那麼第二個 <script> 塊呢? 執行結果是彈出 "undefined" 的對話方塊後報 JS 錯誤,說 addB 不是一個 function。
有點出乎意料?呵呵,其實第一個 script 塊中的 addA 一句是函式宣告,當然進行了"預編譯",但是第二個 script 塊中的 addB 一句並非函式宣告。只不過在執行這段 <script> 之前對變數進行了"預宣告",因此一開始變數addB是存在的,只不過是 undefined 的(可參看http://eclipse07.javaeye.com/admin/blogs/484566 )。因此執行結果便如上面所示。
將題目再變化下,如下
Js程式碼
<script>
alert(typeof addB);
addB();
var addB = function addB() {
alert("B executed!");
};
</script>
執行結果如何呢?
在 ff 下執行,與上面執行結果一樣。打住,且在 IE6 下執行看看如何。
結果是彈出 "function" 和 "B executed!",一切正常。
Google 了一下,有人說這是 IE 的 BUG。
那麼,請看下面的程式碼
Js程式碼
<script>
alert(typeof addB);
var addB = "variable";
function addB() {
alert("function addB");
}
alert(addB);
</script>
執行結果是"function"和"variable"。
JS解析器先預定義了 addB 變數為 undefined, 但是 addB 函式覆蓋了此變數,因此一開始執行結果是 function,然後 addB 被賦值為 "variable",因此最後執行結果是 "variable",上面的程式碼即使變為
Js程式碼
<script>
alert(typeof addB);
function addB() {
alert("function addB");
}
var addB = "variable";
alert(addB);
</script>
結果也一樣,這說明JS解析器先預宣告變數,再預定義函式 。
小結一下:JS 在執行前會進行類似"預編譯"的操作,而且先預定義變數再預定義函式。
1、form中的input有哪些型別?各是做什麼處理使用的?
2、table標籤中border,cellpadding td標籤中colspan,rowspan分別起什麼作用?
3、form中的input可以設定readonly和disable,請問這兩項屬性有什麼區別?
4、JS中的三種彈出式訊息提醒(警告視窗、確認視窗、資訊輸入視窗)的命令是什麼?
1、form中的input有哪些型別?各是做什麼處理使用的?
text radio checkbox file button image submit reset hidden
2、table標籤中border,cellpadding td標籤中colspan,rowspan分別起什麼作用?
border邊界
cellpadding邊距
colspan跨列數
rowspan跨行數
3、form中的input可以設定readonly和disable,請問這兩項屬性有什麼區別?
readonly不可編輯,但可以選擇和複製
disable不能編輯複製選擇
4、JS中的三種彈出式訊息提醒(警告視窗、確認視窗、資訊輸入視窗)的命令是什麼?
alert
confirm
prompt
var Prize = new Array();
Prize[0]="對講機";
Prize[1]="5Q幣";
Prize[2]="地下城與勇士禮包";
Prize[3]="10Q幣";
Prize[4]="QQ飛車禮包";
Prize[5]="1Q幣";
function startLuckDraw(){
//verify();
var number = document.fm.name.value;
var xmlhttp=getXMLHttp();
xmlhttp.open("GET","select.php?number="+number,true);
xmlhttp.send();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
if(xmlhttp.responseText=="1")
{
alert("一個身份證號碼只能抽一次獎");
}
else
{
start();
}
}
}
}
function start()
{
var t=parseInt(18*Math.random());
if(t==18){t=0}
for(var i=0;i<18;i++)
{
document.getElementById("Prize"+i).className = "";
}
document.getElementById("Prize"+t).className="choose";
document.fm.displayBox.value=t;
meter=setTimeout("start()",100);
}
function endLuckDraw(){
clearTimeout(meter);
var x= document.fm.displayBox.value;
var number = document.fm.name.value;
var request=getXMLHttp();
request.open("GET","add.php?number="+number+"&prize="+Prize[x],true);
request.send();
if(Prize[x]!="謝謝參與"){
alert("恭喜您獲得了獎品:"+Prize[x]+"!");}
else {alert("謝謝參與!")}
}
function getResult(){
var t = document.getElementsByTagName("ul")[0].firstChild;
var x = Number(document.getElementById("count").value);
var newNode = document.createElement("li");
var request=getXMLHttp();
request.open("GET","select2.php?id="+x,true);
request.send();
request.onreadystatechange=function(){
if (request.readyState==4 && request.status==200)
{
if(request.responseText){
var text = document.createTextNode(request.responseText);
newNode.appendChild(text);
document.getElementById("number").insertBefore(newNode,t);
document.getElementById("count").value=x+1;
}
//document.getElementById("123").innerHTML = request.responseText;
}
}
}
function verify(){
var phone = document.fm.name.value;
var tmp = /^1[3-9]\d{9}$/; //支援11位手機號碼驗證
var flag=tmp.test(phone);
if(!flag){
alert("手機號輸入不合法");
return false;
//startLuckDraw();
}
else {
startLuckDraw();
}
}
function getXMLHttp(){
var xmlhttp;
try {
// Mozilla / Safari / IE7
xmlhttp = new XMLHttpRequest();
} catch (e) {
// IE
var XMLHTTP_IDS = new Array('MSXML2.XMLHTTP.5.0',
'MSXML2.XMLHTTP.4.0',
'MSXML2.XMLHTTP.3.0',
'MSXML2.XMLHTTP',
'Microsoft.XMLHTTP' );
var success = false;
for (var i=0;i < XMLHTTP_IDS.length && !success; i++) {
try {
xmlhttp = new ActiveXObject(XMLHTTP_IDS[i]);
success = true;
} catch (e) {}
}
if (!success) {
throw new Error('Unable to create XMLHttpRequest.');
}
}
return xmlhttp;
}
//建立建立一個XMLHttpRequest物件
setInterval("getResult()",5000);
f = function() {return true;};
g = function() {return false;};
(function() {
if (g() && [] == ![]) {
f = function f() {return false;};
function g() {return true;}
}
})();
alert(f()); // true or false ?
------------------------
答案:
(function() {
if (g() && [] == ![]) {
//應該看成if((g() && [] )== ![])
//因為g()是false後面那個&&[]就沒起作用 整個都是false
//![]也是false 所以if成立 進入if塊內
f = function f() {return false;};
//重新定義f
function g() {return true;}
//這句沒用
}
})();
alert(f());
//false
二、擷取字串abcdefg的efg
abcdefg
<script type="text/javascript">
var mytext=document.getElementByIdx_x_x("text");
var myvalue=mytext.innerHTML;
var jiequ=myvalue.substring(myvalue.length-3,myvalue.length);
alert(jiequ)
</script>
三、寫出一下運算結果
alert(typeof(null)) // object
alert(typeof(undefined)) // undefined
alert(typeof(NaN)) // number
alert(NaN==undefined) // false
alert(NaN==NaN) // false
var str="123abc";
alert(typeof(str++)) // number
alert(str) // NaN
四、寫出函式DateDemo的返回結果,系統時間假定為今天
function DateDemo(){
var d, s="今天日期是:";
d = new Date();
s += d.getMonth() + "/";
s += d.getDate() + "/";
s += d.getYear();
return s;
}
結果:今天日期是:7/17/2010
五、寫出程式執行的結果?
for(i=0, j=0; i<10, j<6; i++, j++){
k = i + j;
結果:10(小心陷阱)
var str= "aaaebbbcccddd";
str = str.replace(/(.)\1+/g,'$1')
alert(str)
name = 'aaa bbb ccc'; uw=name.replace(/\b\w+\b/g, function(word){ return word.substring(0,1).toUpperCase()+word.substring(1);} );
alert(uw)
1.以下哪個在JAVASCRIPT中會報錯:
var a=();
var a=[];
var a={};
var a=//;
2.JAVA中有哪些保留字,越多越好,10個以上.
3.CSS中有幾種宣告方式.
4.寫出你所知道的開源專案或軟體,並說明他們的好處以及作用.
最佳答案
1,var a=();var a=//; 報錯 兩個不行! --------------------------------- 2,JAVA! int char while for do switch void double float unsigned long try abstract super extent bool break case catch class delegate foreach in static void public private protected internal 等等 太多了 3, 這題有點不知道怎麼答,到底宣告是什麼意思? 是宣告一個已經存在一個CSS有三種: 1.匯入一個已經存在的CSS檔案 <link rel="stylesheet" type="text/css" href=""> 2.直接在HARD裡宣告一個CSS程式碼段: <style type="text/css"> ..... </style> 3.直接在網頁元素裡宣告使用CSS: style="color:red;" 如果是宣告CSS類 , 則有三種: 直接標籤名作為CSS類名稱: TagName{ ... } 以元素ID作為CSS類宣告: #ID{...} 自定義CSS類名稱 : .ClassName{} -------------------------------------------------------------- 4,開源的 客戶端指令碼的話就說說 ExtJS 她可以用來開發RIA也即富客戶端的AJAX應用,是一個用javascript寫的,主要用於建立前端使用者介面,是一個與後臺技術無關的前端ajax框架。因此,可以把ExtJS用在.Net、Java、Php等各種開發語言開發的應 用中。 而且,使用這個框架可以直接用一行程式碼實現非常漂亮的而且標準的網頁控制元件介面,可以使用程式碼呼叫的控制元件來替代目前的流行網頁佈局,和WinForm程式一樣,使得前端開發完全控制元件化。 Jquery也是優秀的前臺框架,優點: 程式碼簡練、語義易懂、學習快速、文件豐富。 jQuery是一個輕量級的指令碼,其程式碼非常小巧,最新版的JavaScript包只有20K左右。 jQuery支援CSS1-CSS3,以及基本的xPath。 jQuery是跨瀏覽器的,它支援的瀏覽器包括IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+。 可以很容易的為jQuery擴充套件其他功能。 能將JS程式碼和HTML程式碼完全分離,便於程式碼和維護和修改。 外掛豐富,除了jQuery本身帶有的一些特效外,可以通過外掛實現更多功能,如表單驗證、tab導航、拖放效果、表格排序、DataGrid,樹形選單、影像特效以及ajax上傳等。 除此之外,還有ProtoType,Bindows(JS框架) 服務,ZedGragh(.Net做統計圖的),Spring,Hibernate,Structs,EJB,Jbmp等比較有名的
網易JS面試題引起的討論
2012-02-05 23:58
第一道:
var tt = 'aa';
function test(){
alert(tt); //underfined;
var tt = 'dd';
alert(tt); //dd
}
test();
第二道:
var myObject= {
num: 2,
add: function(){
this.num=3;
(function(){
alert(this.num); //underfined
this.num=4;
})();
alert(this.num) //3
}
}
myObject.add();
本文主要是講預編譯。
1. undefined
當需要判斷一個變數是否為 undefined 時,直接用
Js程式碼
1. alert(om == undefined);
alert(om == undefined);
可能出錯。因為 JS 如果引用未宣告的變數,那麼會出現JS錯誤,在上述例子中,如果 om 未曾宣告,就會報 JS 錯誤。因此判斷一個變數是 undefined,最好用這種方法
Js程式碼
1. alert( typeof om == 'undefined' );
alert(typeof om == 'undefined');
2. JS 中沒有塊作用域,在函式中宣告的變數在整個函式中都可用(無論是在函式開頭處宣告還是末尾處宣告),如
Js程式碼
function() {
alert(om); // 顯示 undefined
var om = 'abc';
alert(om); // 顯示 abc
}
3. JS 在函式執行前將整個函式的變數進行宣告,無論這個變數的宣告語句有沒有機會執行,如
Js程式碼
1. function () {
2. alert(om); // 顯示 undefined
3. if ( false ) {
4. var om = 'abc' ; // 此處宣告沒有機會執行
5. }
6. }
======================================================================
今天工作需要,搜尋下JS面試題,看到一個題目,大約是這樣的
Js程式碼
<script>
var x = 1, y = z = 0;
function add(n) {
n = n+1;
}
y = add(x);
function add(n) {
n = n + 3;
}
z = add(x);
</script>
問執行完畢後 x, y, z 的值分別是多少?
仔細看的人馬上就知道了, x, y 和 z 分別是 1, undefined 和 undefined。
不過,如果將兩個 add 函式修改一下,題目變為
Js程式碼
<script>
var x = 1, y = z = 0;
function add(n) {
return n = n+1;
}
y = add(x);
function add(n) {
return n = n + 3;
}
z = add(x);
</script>
那麼這時 y 和 z 分別是什麼呢?我馬上想到是 2 和 4,不過結果卻是 4 和 4。
這說明,在第一次呼叫 add 函式之前,第二個 add 函式已經覆蓋了第一個 add 函式。原來,這是 JS 直譯器的"預編譯",JS 解析器在執行語句前會將函式宣告和變數定義進行"預編譯",而這個"預編譯",並非一個頁面一個頁面地"預編譯",而是一段一段地預編譯,所謂的段就是一個 <script> 塊。且看下面的程式碼
Js程式碼
<script>
function add(n) {
return n = n+1;
}
alert(add(1));
</script>
<script>
function add(n) {
return n = n+3;
}
alert(add(1));
</script>
會分別彈出 2 和 4。
那麼,將上面的題目再變換一下,如下
Js程式碼
<script>
alert(typeof addA);
addA();
function addA() {
alert("A executed!");
};
</script>
<script>
alert(typeof addB);
addB();
var addB = function() {
alert("B executed!");
};
</script>
執行結果是什麼呢? 按照前面的知識,第一個 <script> 塊執行正常,結果就是彈出 "function" 和 "A executed!" 的對話方塊。
那麼第二個 <script> 塊呢? 執行結果是彈出 "undefined" 的對話方塊後報 JS 錯誤,說 addB 不是一個 function。
有點出乎意料?呵呵,其實第一個 script 塊中的 addA 一句是函式宣告,當然進行了"預編譯",但是第二個 script 塊中的 addB 一句並非函式宣告。只不過在執行這段 <script> 之前對變數進行了"預宣告",因此一開始變數addB是存在的,只不過是 undefined 的(可參看http://eclipse07.javaeye.com/admin/blogs/484566 )。因此執行結果便如上面所示。
將題目再變化下,如下
Js程式碼
<script>
alert(typeof addB);
addB();
var addB = function addB() {
alert("B executed!");
};
</script>
執行結果如何呢?
在 ff 下執行,與上面執行結果一樣。打住,且在 IE6 下執行看看如何。
結果是彈出 "function" 和 "B executed!",一切正常。
Google 了一下,有人說這是 IE 的 BUG。
那麼,請看下面的程式碼
Js程式碼
<script>
alert(typeof addB);
var addB = "variable";
function addB() {
alert("function addB");
}
alert(addB);
</script>
執行結果是"function"和"variable"。
JS解析器先預定義了 addB 變數為 undefined, 但是 addB 函式覆蓋了此變數,因此一開始執行結果是 function,然後 addB 被賦值為 "variable",因此最後執行結果是 "variable",上面的程式碼即使變為
Js程式碼
<script>
alert(typeof addB);
function addB() {
alert("function addB");
}
var addB = "variable";
alert(addB);
</script>
結果也一樣,這說明JS解析器先預宣告變數,再預定義函式 。
小結一下:JS 在執行前會進行類似"預編譯"的操作,而且先預定義變數再預定義函式。
1、form中的input有哪些型別?各是做什麼處理使用的?
2、table標籤中border,cellpadding td標籤中colspan,rowspan分別起什麼作用?
3、form中的input可以設定readonly和disable,請問這兩項屬性有什麼區別?
4、JS中的三種彈出式訊息提醒(警告視窗、確認視窗、資訊輸入視窗)的命令是什麼?
1、form中的input有哪些型別?各是做什麼處理使用的?
text radio checkbox file button image submit reset hidden
2、table標籤中border,cellpadding td標籤中colspan,rowspan分別起什麼作用?
border邊界
cellpadding邊距
colspan跨列數
rowspan跨行數
3、form中的input可以設定readonly和disable,請問這兩項屬性有什麼區別?
readonly不可編輯,但可以選擇和複製
disable不能編輯複製選擇
4、JS中的三種彈出式訊息提醒(警告視窗、確認視窗、資訊輸入視窗)的命令是什麼?
alert
confirm
prompt
var Prize = new Array();
Prize[0]="對講機";
Prize[1]="5Q幣";
Prize[2]="地下城與勇士禮包";
Prize[3]="10Q幣";
Prize[4]="QQ飛車禮包";
Prize[5]="1Q幣";
function startLuckDraw(){
//verify();
var number = document.fm.name.value;
var xmlhttp=getXMLHttp();
xmlhttp.open("GET","select.php?number="+number,true);
xmlhttp.send();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
if(xmlhttp.responseText=="1")
{
alert("一個身份證號碼只能抽一次獎");
}
else
{
start();
}
}
}
}
function start()
{
var t=parseInt(18*Math.random());
if(t==18){t=0}
for(var i=0;i<18;i++)
{
document.getElementById("Prize"+i).className = "";
}
document.getElementById("Prize"+t).className="choose";
document.fm.displayBox.value=t;
meter=setTimeout("start()",100);
}
function endLuckDraw(){
clearTimeout(meter);
var x= document.fm.displayBox.value;
var number = document.fm.name.value;
var request=getXMLHttp();
request.open("GET","add.php?number="+number+"&prize="+Prize[x],true);
request.send();
if(Prize[x]!="謝謝參與"){
alert("恭喜您獲得了獎品:"+Prize[x]+"!");}
else {alert("謝謝參與!")}
}
function getResult(){
var t = document.getElementsByTagName("ul")[0].firstChild;
var x = Number(document.getElementById("count").value);
var newNode = document.createElement("li");
var request=getXMLHttp();
request.open("GET","select2.php?id="+x,true);
request.send();
request.onreadystatechange=function(){
if (request.readyState==4 && request.status==200)
{
if(request.responseText){
var text = document.createTextNode(request.responseText);
newNode.appendChild(text);
document.getElementById("number").insertBefore(newNode,t);
document.getElementById("count").value=x+1;
}
//document.getElementById("123").innerHTML = request.responseText;
}
}
}
function verify(){
var phone = document.fm.name.value;
var tmp = /^1[3-9]\d{9}$/; //支援11位手機號碼驗證
var flag=tmp.test(phone);
if(!flag){
alert("手機號輸入不合法");
return false;
//startLuckDraw();
}
else {
startLuckDraw();
}
}
function getXMLHttp(){
var xmlhttp;
try {
// Mozilla / Safari / IE7
xmlhttp = new XMLHttpRequest();
} catch (e) {
// IE
var XMLHTTP_IDS = new Array('MSXML2.XMLHTTP.5.0',
'MSXML2.XMLHTTP.4.0',
'MSXML2.XMLHTTP.3.0',
'MSXML2.XMLHTTP',
'Microsoft.XMLHTTP' );
var success = false;
for (var i=0;i < XMLHTTP_IDS.length && !success; i++) {
try {
xmlhttp = new ActiveXObject(XMLHTTP_IDS[i]);
success = true;
} catch (e) {}
}
if (!success) {
throw new Error('Unable to create XMLHttpRequest.');
}
}
return xmlhttp;
}
//建立建立一個XMLHttpRequest物件
setInterval("getResult()",5000);
相關文章
- struts面試題及答案【重要】面試題
- Oracle面試試題及答案Oracle面試
- 常見AI面試題及答案AI面試題
- 30 道 Dubbo 面試題及答案面試題
- Java初中級面試題及答案Java面試題
- 碼農面試智力題及答案面試
- Java高階面試題及答案Java面試題
- SQL經典面試題及答案SQL面試題
- c#面試題及答案(二)C#面試題
- Oracle 面試英文題目及答案Oracle面試
- (轉)ABAP 面試問題及答案面試
- 阿里Jvm必問面試題及答案阿里JVM面試題
- 面試題及相關參考答案面試題
- SQL崗位30個面試題,SQL面試問題及答案SQL面試題
- 雲端計算面試題及答案,AWS雲端計算面試題面試題
- 技術乾貨:RabbitMQ面試題及答案MQ面試題
- 技術乾貨:ActiveMQ面試題及答案MQ面試題
- ASP net core面試題彙總及答案面試題
- 24個Jvm面試題總結及答案JVM面試題
- 熱門 Splunk 管理面試問題及答案面試
- 前端必備,JavaScript面試問題及答案前端JavaScript面試
- 阿里金服最全java面試題及答案阿里Java面試題
- Java常見面試題及答案彙總Java面試題
- jQuery經典面試題及答案精選jQuery面試題
- 前端面試題 | JS部分(附帶答案)前端面試題JS
- HTML+CSS+JS面試題(附帶答案)HTMLCSSJS面試題
- 技術乾貨:Hadoop面試題及答案Hadoop面試題
- 最全前端開發面試問題及答案整理前端面試
- Python開發面試題及部分答案分享!Python面試題
- sql 經典面試題及答案(選課表)SQL面試題
- 經典Java面試題彙總及答案解析Java面試題
- 那些web前端經典面試題大全及答案Web前端面試題
- 軟體測試常見面試題及答案面試題
- Web前端面試題目及答案彙總Web前端面試題
- Linux面試題,淺析常見Linux命令面試題及答案Linux面試題
- 雲端計算面試題及答案,常見的Shell指令碼面試題面試題指令碼
- 雲端計算面試題及答案,雲端計算崗位精品面試題面試題
- 技術乾貨:spring boot面試題及答案Spring Boot面試題