JavaScript面試題


JS基礎面試題

1.介紹下js中關於arguments 。 【考點:函數arguments

在函數代碼中,使用特殊對象 arguments,開發者無需明確指出參數名,就能訪問它們。

例如,在函數 sayHi() 中,第一個參數是 message。用 arguments[0] 也可以訪問這個值,即第一個參數的值(第一個參數位於位置 0,第二個參數位於位置 1,依此類推)。

因此,無需明確命名參數,就可以重寫函數:

function sayHi() {

  if (arguments[0] == "bye") {

    return;

  }

  alert(arguments[0]);

}

2.看以下JavaScript程序問:執行以上程序后,num的值為(    D   )【考點:數據類型】

var num;

num=5+true;

A、true  B、false  C、5  D、6

3、看以下JavaScript程序【考點:switch語句,break

var   x=prompt(“請輸入1-5的數字!”,“”);

switch (x) {

case “1”:alert(“one”);

case “2”:alert(“two”);

case “3”:alert(“three”);

case “4”:alert(“four”);

case “5”:alert(“five”);

default:alert(“none”);

}

運行以上程序,在提示對話框中輸入“4”,依次彈出的對話框將輸出:    B      

A、four,none   B、four,five,none     C、five    D、five,none

4、分析下面的JavaScript代碼段【考點:for循環】

a=new Array(2,3,4,5,6);

sum=0;

輸出結果是().(選擇一項)

for(i=1;i<a.length;i++ )

   sum +=a[i];

document.write(sum);      

    A.  20   B.  18  C.  14  D.  12  

5、在HTML中,Location對象的()屬性用於設置或檢索URL的端口號。(B  

      【考點:location對象】

    A.  hostname   B.  Port    C.  pathname  D.  href  

6、分析下面的javascript代碼: 【考點:+ 的用法,加法和連接符】

x=11;

y="number";

m= x+y ;

m的值為(A  

 A.  11number  B.  number  C.  11  D.  程序報錯

7setInterval("alert('welcome');",1000);【考點:定時器的用法】

這段代碼的意思是(D)  

    A.  等待1000秒后,再彈出一個對話框  

    B.  等待1秒鍾后彈出一個對話框  

    C.  語句報錯,語法有問題  

D.  每隔一秒鍾彈出一個對話框  

8、分析下面的JavaScript代碼段:【考點:Math對象的方法使用,round 四舍五入】

var a=15.49;

document.write(Math.round(a));

輸出的結果是().(A)     

    A.  15  B.  16  C.  15.5  D.  15.4  

9、分析如下的JavaScript代碼片段, b的值為(C ) 【考點:parseInt取整】

Var a = 1.5,b;

b=parseInt(a);  

    A.  2  B.  0.5  C.  1   D.  1.5  

10、在表單(form1)中有一個文本框元素(fname),用於輸入電話號碼,格式如:010-82668155,要求前3位是010,緊接一個“-”,后面是8位數字。要求在提交表單時,根據上述條件驗證該文本框中輸入內容的有效性,下列語句中,(  A   )能正確實現以上功能

【考點:substr() 截取字符串的使用,isNaN 判斷是否為數字】

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("無效的電話號碼!");

11、以下哪個單詞不屬於javascript保留字:(b 

【考點:javascript保留字,防止命名出現使用保留字而產生錯誤】
A.with      B.parent     C.class     D.void 

12、請選擇結果為真的表達式:(  C    【考點:對null ,undefined,NaN的理解】
A.null instanceof Objectif(!(null instanceof Object))是真的) 
B.null === undefined 
C.null == undefined 
D.NaN == NaN 

13、以下哪個運算符不屬於邏輯運算符?( C  )【考點:邏輯運算符和位運算符】

A、&&           B、||              C、^           D、!

14、下面定義變量中錯誤的是(  D  )。【考點:變量定義規則】

A、 eee          B、 _abc          C、box_1        D、 2point

15、下面語句var x= -10, y; x=2*x; y=x+15;計算后y的結果是(  C  )。

【考點:四則運算】

A.-15          B、 10            C、 -5          D、 5

16、下列表達式運算結果為真的是( D   )。【考點:邏輯運算】

   A、1<2 && “5”! =5

   B、2>2*1 || “5”= =5   

   C、2>2*1 && 5= =5

   D、 1<2 && “5”= =5

17、以下程序段,執行的結果是(  C  )。【考點:while循環,避免出現死循環,除非有需要】

 var x=-1;

 do{

    x=x*x;

 } while(!x);

A、是死循環          B、循環執行二次      C、循環執行一次        D、有語法錯誤

18.執行語句for(i=1;i++<10; );后變量i的值是(  C  )。

【考點:for循環,什么時候跳出循環】

A、9            B、10             C、11              D、不定

19、鍵盤事件中不包括的是( B   )。【考點:鍵盤事件】

A、keydown         B、keyover         C、keypress          D、keyup

20、執行以下腳本語句在頁面輸出(  true  )。【考點:四則運算和邏輯運算綜合應用】

var a=3;

a+=8*2;

alert(a>10&&a<=20);

21、預測以下代碼片段的輸出結果 var str ;      B    )
alert(typeof str); 【考點:變量的定義和typeof 操作符的使用】

A;string    B:undefined     C:Object      D:String

22.以下哪項不屬於Javascript的特征? 【考點:JavaScript語言特性】C

A.Javascript是一種腳本語言 

B.Javascript是事件驅動的 

C.Javascript代碼需要編譯以后才能執行

D.Javascript是獨立於平台的 

23.閱讀下面的JavaScript代碼: 【考點:函數調用】B

function f(y) {
var x=y*y;
return x;
}
for(x=0;x< 5;x++) {
y=f(x);
document.writeln(y);

A.0 1 2 3 4     B.0 1 4 9 16      C.0 1 4 9 16 25       D.以上答案都不對

 

24、關於Javascript中數組的說法中,不正確的是:(A 【考點:數組的理解,包括創建,長度,元素的類型等概念】

A.數組的長度必須在創建時給定,之后便不能改變 

B.由於數組是對象,因此創建數組需要使用new運算符 

C.數組內元素的類型可以不同

D.數組可以在聲明的同時進行初始化 

25、考察以下程序片段:  【考點:toFixed 保留小數位數的使用】
var n = new Number(3456);
alert(n.toFixed(2));
以下選項正確的是:(   C    )

A.輸出 34  B.輸出 56       C.輸出3456.00        D.輸出345600

26、察以下程序片段以下選項正確的是  C   :
var str = “32px”;
var str1 = str.slice(-2);
alert(str);
alert(str1);

【考點:注意:如果 end 未被規定,那么 slice() 方法會選取從 start 到數組結尾的所有元素】

A依次輸出”px” “px”       B依次輸出”32” “32”

C依次輸出”32px” “px”     D依次輸出”32px” “32px”

27、考察以下程序片段以下選項正確的是( A )【考點:字符串的方法indexof的使用,之一返回的是下標】:
var str = “12px”;
var s = str.indexof(“2”);
alert(s);

A.輸出 1     B.輸出 2     C.輸出 p      D.輸出 12  

28、JavaScript中,下列哪段代碼能夠在1秒之后執行表達式expression( D )

【考點:setTimeout 的使用,注意時間的表達,以毫秒計,1秒應寫為1000毫秒

A.window.setTimeout(1000,expression); 

B.window.setTimeout(expression,1);

C.window.setTimeout(1,expression); 

D.window.setTimeout(expression,1000); 

29、JavaScript中,如果不指明對象直接調用某個方法,則該方法默認屬於哪個對象: B

【考點:方法的調用,一般如果沒有明確對用者,則是window對象】

A.document     B.Window      C.form    D.Location

30、history從屬於window,下列能訪問前一頁面方法是:(   D    ) 

【考點:history對象使用】

A.back(-1)    B.back(1)     C.forward(1)     D.go(-1)

31、有語句“var x=0;while(____) x+=2;”,要使while循環體執行10次,空白處的循環判定式應寫為:( C )

A.x<10 B. x<=10 C.x<20 D.x<=20

【考點:while循環】

32、以下( )表達式產生一個0~7之間(0,7)的隨機整數.( C )

A.Math.floor(Math.random()*6)

B.Math.floor(Math.random()*7)

C.Math. floor(Math.random()*8)

D.Math.ceil(Math.random()*8)  

【考點:隨機數產生,注意左包右不包,隨機數日后會經常用到,需熟練掌握】

33、HTML頁面中包含如下所示代碼,則編寫Javascript函數判斷是否按下鍵盤上的回車鍵正確的編碼是(C)【考點:鍵盤事件,獲取按鍵編碼 event.keyCode

<input name=”password” type=”text” onkeydown=”myKeyDown()”>

  1. function myKeyDown(){

if (window.keyCode==13)

alert(“你按下了回車鍵”);

  1. function myKeyDown(){

if (document.keyCode==13)

alert(“你按下了回車鍵”);

  1. function myKeyDown(){

if (event.keyCode==13)

alert(“你按下了回車鍵”);

  1. function myKeyDown(){

if (keyCode==13)

34、HTML頁面上,當按下鍵盤上的任意一個鍵時都會觸發Javascript的( D)事件(

A.onFocus  B.onBlur  C.onSubmit   D.onKeyDown

35、看以下JavaScript程序 【考點: ++ 運算符的使用,什么時候先加后賦值,什么時候先賦值后++

var x,y;

x=10;

y=x++;

運行以上程序后,變量y的值為   10     

36、看以下JavaScript程序【考點: && 運算符】

var i,j;

i=0;

j=i&&(++i);

運行以上程序后,變量i的值為   0     

37、看以下JavaScript程序 【考點: do while 語句,先執行一次,在判斷條件】

var i;

i=8;

do{

i++;

}while(i>100);

運行以上程序后,變量i的值為   9     

38、看以下JavaScript程序 【考點: continue break的使用】

for(var i=1;i<=10;i++){

if(i= =5) continue;

if(i= =8) break;

alert(i);

}

運行以上程序后,彈出的對話框依次輸出的值為 1,2,3,4,6,7           

39、編寫程序實現去除數組重復元素【考點:程序邏輯,簡單的算法實現功能,一題多解】

function unique1(array){

 var n = []; //一個新的臨時數組

 //遍歷當前數組

 for(var i = 0; i < array.length; i++){

  //如果當前數組的第i已經保存進了臨時數組,那么跳過,

  //否則把當前項push到臨時數組里面

  if (n.indexOf(array[i]) == -1) n.push(array[i]);

 }

 return n;

}

 

40、    var k;

for (var i=0;i<5 ;i++ )

{

for (var j=0;j<10 ;j++ )

{

k=i+j;

}

}

alert(k) //13【考點:for循環,注意何時跳出循環】

 

41、  var a=0;

test();

function test(){

var a = 6

b()

}

function b(){

alert(a)

}

結果為: 0 【考點:變量的作用域,此處容易出錯】

 

42  、function foo(){

alert("aaaa");

a = setTimeout(foo(),100);

}

foo();  

無限循環

【考點:setTimeout,以及遞歸調用】

 

43、window對象的方法中,( A )方法是用於彈出確認對話框,可讓選擇“確定”或“取消” 【考點:confirm】

A、confirm() B、alert() C、prompt() D、open()

44、用JavaScript實現打開一個新窗口,地址為abc.html,正確的方法是(A)【考點:BOM 中open()方法】

A、window.open(“abc.html”,“”,“”);

B、window.open(“”,“abc.html”,“”);

C、window.open(“”,“”,“abc.html”);

D、window.open(“”,“”,“”);

45、在JavaScript程序中加入注釋,方法有(AB)【js注釋】

A、//注釋內容      B、/*注釋內容*/     C、/注釋內容     D、/*注釋內容

46、以下JavaScript變量名不合法的有(ABC) 【變量名,標識符規則】

A、4Myvariable   B、My@variable   C、function   D、Myvariable4

47、看下列代碼,將會輸出什么?(變量聲明提升)

var foo = 1;

function(){

    console.log(foo);

    var foo = 2;

    console.log(foo);

}

答案:輸出undefined 和 2。【變量提升】

 

48、y和z的值是多少  兩個undefined    

var x = 1;

var y = 0;

var z = 0;

function add(n){n=n+1;}

y = add(x);

function add(n){n=n+3;}

z = add(x);

 49、10.寫出函數DateDemo的返回結果,系統時間假定為今天

function DateDemo(){

  var d, s="今天日期是:";

  d = new Date();

  s += d.getMonth() + "/";

  s += d.getDate() + "/";

  s += d.getYear();

  return s;

}

結果:今天日期是:當前系統日期

50、寫出程序運行的結果?

for(i=0, j=0; i<10, j<6; i++, j++){

  k = i + j;

}

結果:10(小心陷阱)  

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM