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 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-********,要求前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 )【考点:逻辑运算符和位运算符】1.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】 A.function myKeyDown(){ if (window.keyCode==13) alert(“你按下了回车键”); B.function myKeyDown(){ if (document.keyCode==13) alert(“你按下了回车键”); C.function myKeyDown(){ if (event.keyCode==13) alert(“你按下了回车键”); D.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++; var i,j; i=0; j=i&&(++i); var i; i=8; do{ i++; }while(i>100); 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(小心陷阱)