web前端整套面试题(一)--js相关
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,== 是比较语句
四、程序题
<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;
}
<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>