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. 程序報錯
7、setInterval("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 Object(if(!(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()”>
- function myKeyDown(){
if (window.keyCode==13)
alert(“你按下了回車鍵”);
- function myKeyDown(){
if (document.keyCode==13)
alert(“你按下了回車鍵”);
- function myKeyDown(){
if (event.keyCode==13)
alert(“你按下了回車鍵”);
- 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(小心陷阱)