JavaScript面试题
Posted shixiaokeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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. 程序报错
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(小心陷阱)
以上是关于JavaScript面试题的主要内容,如果未能解决你的问题,请参考以下文章