Javascript整套面试试题,web前端面试试题

一、单选

1、以下哪条语句会产生运行:(A) 

A.var obj = ( ); 

B.var obj = [ ]; 

C.var obj = { }; 

D.var obj = / /; 

B代表数组,C代表对象,D是正则表达式

 

2、以下哪个单词不属于javascript保留字:(B) 

A. with 

B. parent 

C. class

D. void 

· abstract

· boolean

· break

· byte

· case

· catch

· char

· class

· const

· continue

· default

· do

· double

· else

· extends

· false

· final

· finally

· float

· for

· function

· goto

· if

· implements

· import

· in

· instanceof

· int

· interface

· long

· native

· new

· null

· package

· private

· protected

· public

· return

· short

· static

· super

· switch

· synchronized

· this

· throw

· throws

· transient

· true

· try

· var

· void

· while

· with 

 

 

3、请选择结果为真表达式:(C) 

A. null instanceof Object 

B. null ===  undefined 

C. null == undefined 

D. NaN == NaN 

A->false,B->false,C->true,D->false,NaN是一个与任何数字都不相等的数字

 

二、不定项选择题

4、请选择对javascript理解有误:(ABC) 

A. JScript是javascript简称 

B. javascript是网景公司开发种Java脚本语言其目是为了简化Java开发难度 

C. FireFox和IE存在大量兼容性问题主要原因在于他们对javascript支持区别上 

D. AJAX技术一定要使用javascript技术 

 

C->是对于WEB标准的支持不同,D->AJAX全称是Asynchronous JavaScript and XML,会用到js技术(但是这道题有异议)

 

5、 foo对象有att属性,那么获取att属性的值,以下哪些做法是可以的:(ACE)   
A. foo.att   
B. foo(“att”)   
C. foo[“att”]   
D. foo{“att”}   
E. foo[“a”+”t”+”t”] 

 

6、在不指定特殊属性的情况下,哪几种HTML标签可以手动输入文本:(AB)   

A. <TEXTAREA></TEXTAREA>     
B. <INPUT   type=”text”/>   
C. <INPUT   type=”hidden”/>   
D. <DIV></DIV> 

 

注意是手动输入,所以div不可以

 

7、以下哪些是javascript的全局函数:(ABCDE)   
A. escape   
B. parseFloat   
C. eval   
D. setTimeout   
E. alert   

 

A->escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。

B->parseFloat() 解析一个字符串并返回一个浮点数。

C->eval() 计算 JavaScript 字符串,并把它作为脚本代码来执行。

js中的全局函数有:

 

8、关于IFrame表述正确的有:(ABCD)   
A. 通过IFrame,网页可以嵌入其他网页内容,并可以动态更改   
B. 在相同域名下,内嵌的IFrame可以获取外层网页的对象   
C. 在相同域名下,外层网页脚本可以获取IFrame网页内的对象     
D. 可以通过脚本调整IFrame的大小   

 

9、关于表格表述正确的有:(ABCDE)   
A. 表格中可以包含tbody元素   
B. 表格中可以包含caption元素   
C. 表格中可以包含多个tbody元素   
D. 表格中可以包含colgroup元素   
E. 表格中可以包含col元素   

A->tbody表格主体内容,B->caption表格标题,D->colgroup列分组,E->col细化列分组因为一个组中,可能每一列也会有区别

colgroup和col的讲解

如果一个表格前三列要垂直居上,后两列垂直居下,我们就可以用分组来进行设置。看起来是样式表可以代替的功能,但这的确不是多余的标签,和前面的标签一样,在 XHTML 1.0 Strict 中也是允许的标签。
<table border=”1″>
<colgroup span=”3″ valign=”top”></colgroup>
<colgroup span=”2″ valign=”bottom”></colgroup>
<tr>
<td>1垂直居上</td>
<td>2垂直居上</td>
<td>3垂直居上</td>
<td>4垂直居下</td>
<td>5垂直居下</td>
</tr>
</table>
span 用以表示该组包含多少列。
col 的作用是细化 colgroup,因为即使在一个组中,列与列之间也可能会出现一些差别,这时就得用到 col 了。
<colgroup span=”3″ valign=”top”>
<col width=”50″></col>
<col align=”center”></col>
<col valign=”middle”></col>
</colgroup>
可以看到第三列的 valign 覆盖了 colgroup 的 valign 设置。在这里 width、align、valign 都是符合 XHTML 1.0 Strict 的,不过要注意的是:没有 height 属性。

 

10、关于IE的window对象表述正确的有:(ACD)   
A. window.opener属性本身就是指向window对象   
B. window.reload()方法可以用来刷新当前页面   
C. window.location=”a.html”和window.location.href=”a.html”的作用都是把当前页面替换成a.html页面   
D. 定义了全局变量g;可以用window.g的方式来存取该变量

 

A->比如两个页面一个A一个B,A页面在页面中用到window.open(\’B.html\’)打开了新的窗口打开了B,而在B的页面想要获得A页面上的元素去改变那个元素,于是在B页面用到window.opener.document.getElementById(“name”).value = \’newName\’;去改变值。所以window.opener相当于找到打开它本身的那个页面。

B->没有window.reload()是location.reload()或者window.location.reload()

 

三、简答题

1、谈谈javascript数组排序方法sort()的使用,重点介绍sort()参数的使用及其内部机制 

  sort()无参数时,按照字符编码进行排列,有参数时应传递一个函数,将按照函数中的顺序进行排序

  比如sort(sortNum);

  function sortNum(a,b){

    return a – b;

  }

 

2、简述DIV元素和SPAN元素的区别。 

  div是块级元素,宽度高度起作用,独占一行;span是内联元素(行内元素)可以并排排列,宽高不起作用,margin和padding上下无效左右有效

 

3、结合<span   id=”outer”><span   id=”inner”>text</span></span>这段结构,谈谈innerHTML   outerHTML   innerText之间的区别。 

  innerHtml,innerText,outerHtml的区别

  innerHtml获取的是<span   id=”inner”>text</span>

  innerText获取的是text

  outerHtml获取的是<span   id=”outer”><span   id=”inner”>text</span></span>

 

4、说几条XHTML规范的内容(至少3条) 

  标签闭合,标签名必须小写,正确嵌套,必须有根元素,所有的xhtml元素必须嵌套在根元素中

 

5、对Web标准化(或网站重构)知道哪些相关的知识,简述几条你知道的Web标准?

  web标准化分为结构化标准化,表现标准化,行为标准化。其中结构标准语言有Xhtml和Xml,表现标准语言css,行为标准语言W3C,ECMScript

  web标准化是网站重构的一种方法

 

6、如何获取表单<select>域的选择部分的文本

  <select id=”se” onchange=”getText()”>
    <option value=”1″ >11111</option>}
    <option value=”2″ >22222</option>}
    <option value=”3″ >33333</option>}
  </select>

  <script type=”text/javascript”>
    var getText = function(){
      var sel = document.getElementsByTagName(\’select\’);
      alert(sel[0].options[sel[0].selectedIndex].text);
      // var sel = document.getElementById(\’se\’);
      // alert(sel.options[sel.selectedIndex].value);
    }

 

7、在js中定时调用foo()函数如何写?

  function foo(){

    alert(new Date());

    setTimeout(\’foo()\’,2000);

  }

  foo();

 

8、var a = 10, b =20,c = 10;alert(a = b);alert(a == b);alert(a == c)结果为?

  alert(a = b) -> 10

  alert(a == b) -> false

  alert(a == c) -> true

  第一个=是赋值语句,赋过值a为10,== 是比较语句

 

 

四、程序题

1、完成foo()函数的内容,要求能够弹出对话框提示当前选中的是第几个单选框。   
  <html>   
  <body>   
  <script>   
function   foo()   {   
  //   在此处添加代码   
  var   rg   =   document.getElementsByName(“radioGroup”);   
  for(   var   i   =   0;   i   <   rg.length;   i++   )   
  {   
      if(   rg[i].checked   )   
      {   
          alert(“你选择了第”   +   (i+1)   +   “个单选框”);   
      }   
  }   
  return   false;   
  }   
 
 </script>   
  <body>   
  <form   name=”form1″   onsubmit=”return   foo();”>   
  <input   type=”radio”   name=”radioGroup”/>   
  <input   type=”radio”   name=”radioGroup”/>   
  <input   type=”radio”   name=”radioGroup”/>   
  <input   type=”radio”   name=”radioGroup”/>   
  <input   type=”radio”   name=”radioGroup”/>   
  <input   type=”radio”   name=”radioGroup”/>   
  <input   type=”submit”/>   
  </form>   
  </body>   
  </html>   

 

2、填充注释部分的函数体,使得foo()函数调用弹出“成功”的对话框,还有字符串翻转功能
<html>
<head>
<script>
function foo(){
var str = reverse(\’a,b,c,d,e,f,g\’);
alert(str);
if(str == \’g,f,e,d,c,b,a\’)
alert(\’成功\’);
else
alert(\’失败\’);
}
function reverse(str){
//在此处加入代码,完成字符串翻转功能

return   str.split(“,”).reverse().join(“,”);   


</script>
</head>
<body>
  <input type=”button” value=”str” onclick=”foo()” />
</body>
</html>

版权声明:本文为zhangxue521原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/zhangxue521/p/6914559.html