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.  程序报错

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(小心陷阱)  

 

 

 

以上是关于JavaScript面试题的主要内容,如果未能解决你的问题,请参考以下文章

前端面试题 之 JavaScript

JavaScript 2022 最新面试题 前端面试题

JavaScript 总结面试笔记 + 经典面试题 + 常用算法,帮你搞定前端 JavaScript 面试!

前端面试题 之 JavaScript

javascript面试题

一个javascript面试题