一套完整的javascript面试题一、单选题
1、以下哪条语句会产生运行错误:()
A.var obj = ();
B.var obj = [];
C.var obj = {};
D.var obj = //;
2、以下哪个单词不属于javascript保留字:()
A.with
B.parent
C.class
D.void3、请选择结果为真的表达式:()
A.null instanceof Object
B.null === undefined
C.null == undefined
D.NaN == NaN
二、不定项选择题
4、请选择对javascript理解有误的:()
A.JScript是javascript的简称
B.javascript是网景公司开发的一种Java脚本语言,其目的是为了简化Java的开发难度
C.FireFox和IE存在大量兼容性问题的主要原因在于他们对javascript的支持不同上
D.AJAX技术一定要使用javascript技术
5、foo对象有att属性,那么获取att属性的值,以下哪些做法是可以的:()
A.foo.att
B.foo(“att”)
C.foo[“att”]
D.foo{“att”}
E.foo[“a”+”t”+”t”]
6、在不指定特殊属性的情况下,哪几种HTML标签可以手动输入文本:()
A.<TEXTAREA></TEXTAREA>
B.<INPUT type=”text”/>
C.<INPUT type=”hidden”/>
D.<DIV></DIV>
7、以下哪些是javascript的全局函数:()
A.escape
B.parseFloat
C.eval
D.setTimeout
E.alert
8、关于IFrame表述正确的有:()
A.通过IFrame,网页可以嵌入其他网页内容,并可以动态更改
B.在相同域名下,内嵌的IFrame可以获取外层网页的对象
C.在相同域名下,外层网页脚本可以获取IFrame网页内的对象
D.可以通过脚本调整IFrame的大小
9、关于表格表述正确的有:()
A.表格中可以包含TBODY元素
B.表格中可以包含CAPTION元素
C.表格中可以包含多个TBODY元素
D.表格中可以包含COLGROUP元素
E.表格中可以包含COL元素
10、关于IE的window对象表述正确的有:()
A.window.opener属性本身就是指向window对象
B.window.reload()方法可以用来刷新当前页面
C.window.location=”a.html”和window.location.href=”a.html”的作用都是把当前页面替换成a.html页面
D.定义了全局变量g;可以用window.g的方式来存取该变量
三、问答题:
1、谈谈javascript数组排序方法sort()的使用,重点介绍sort()参数的使用及其内部机制
2、简述DIV元素和SPAN元素的区别。
3、结合text这段结构,谈谈innerHTML outerHTML innerText之间的区别。
4、说几条XHTML规范的内容(至少3条)
5、对Web标准化(或网站重构)知道哪些相关的知识,简述几条你知道的Web标准?
四、程序题:
1、完成foo()函数的内容,要求能够弹出对话框提示当前选中的是第几个单选框。
<html>
<body>
<script>
function foo() {
// 在此处添加代码
return false;
}
</script>
<body>
<form name="form1" >
<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()函数调用弹出”成功”的对话框。代码应尽量简短。
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) {
// 在此处加入代码,完成字符串翻转功能
}
1、以下哪条语句会产生运行错误:()
A.var obj = ();
B.var obj = [];
C.var obj = {};
D.var obj = //;
2、以下哪个单词不属于javascript保留字:()
A.with
B.parent
C.class
D.void3、请选择结果为真的表达式:()
A.null instanceof Object
B.null === undefined
C.null == undefined
D.NaN == NaN
二、不定项选择题
4、请选择对javascript理解有误的:()
A.JScript是javascript的简称
B.javascript是网景公司开发的一种Java脚本语言,其目的是为了简化Java的开发难度
C.FireFox和IE存在大量兼容性问题的主要原因在于他们对javascript的支持不同上
D.AJAX技术一定要使用javascript技术
5、foo对象有att属性,那么获取att属性的值,以下哪些做法是可以的:()
A.foo.att
B.foo(“att”)
C.foo[“att”]
D.foo{“att”}
E.foo[“a”+”t”+”t”]
6、在不指定特殊属性的情况下,哪几种HTML标签可以手动输入文本:()
A.<TEXTAREA></TEXTAREA>
B.<INPUT type=”text”/>
C.<INPUT type=”hidden”/>
D.<DIV></DIV>
7、以下哪些是javascript的全局函数:()
A.escape
B.parseFloat
C.eval
D.setTimeout
E.alert
8、关于IFrame表述正确的有:()
A.通过IFrame,网页可以嵌入其他网页内容,并可以动态更改
B.在相同域名下,内嵌的IFrame可以获取外层网页的对象
C.在相同域名下,外层网页脚本可以获取IFrame网页内的对象
D.可以通过脚本调整IFrame的大小
9、关于表格表述正确的有:()
A.表格中可以包含TBODY元素
B.表格中可以包含CAPTION元素
C.表格中可以包含多个TBODY元素
D.表格中可以包含COLGROUP元素
E.表格中可以包含COL元素
10、关于IE的window对象表述正确的有:()
A.window.opener属性本身就是指向window对象
B.window.reload()方法可以用来刷新当前页面
C.window.location=”a.html”和window.location.href=”a.html”的作用都是把当前页面替换成a.html页面
D.定义了全局变量g;可以用window.g的方式来存取该变量
三、问答题:
1、谈谈javascript数组排序方法sort()的使用,重点介绍sort()参数的使用及其内部机制
2、简述DIV元素和SPAN元素的区别。
3、结合text这段结构,谈谈innerHTML outerHTML innerText之间的区别。
4、说几条XHTML规范的内容(至少3条)
5、对Web标准化(或网站重构)知道哪些相关的知识,简述几条你知道的Web标准?
四、程序题:
1、完成foo()函数的内容,要求能够弹出对话框提示当前选中的是第几个单选框。
<html>
<body>
<script>
function foo() {
// 在此处添加代码
return false;
}
</script>
<body>
<form name="form1" >
<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()函数调用弹出”成功”的对话框。代码应尽量简短。
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) {
// 在此处加入代码,完成字符串翻转功能
}
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();
}foo();
<html>
<body>
<script>
function foo() {
var r=document.getElementsByName("radioGroup");
for(var i=0;i<r.length;i++)
if(r[i].checked)alert("Num: "+(i+1));
return false;
}
</script>
<body>
<form name="form1" onsubmit="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>
A
B
C二、
ABCD
ACE
AB
ABC
ABCD
ABCDE
ACD三、
1、sort的实现的功能类似JAVA的比较器,数据排序从多维数组的第一维开始排序,可以自己定义排序方法,很不多的函数
2、DIV有回车,SPAN没有
3、 innerHTML对象里面的HTML
outerHTML包括对象和里面的HTML
innerText对象里面的文本
4、属性加引号,不能有不匹配的标签,加定义
5、W3C标准等四、
1、function foo(){
var rg = document.getElementsByName("radioGroup");
for(var i=0;i< rg.length;i++){
if(rg[i].checked){
alert("你选择了第"+(i+1)+"个单选框");
}
}
return false;
} 2、
function reverse(str) {
var spl=str.split(',');
var newstr="";
for(i=spl.length-1;i>=0;i--){
newstr+=spl[i]+',';
}
newstr=newstr.substring(0,newstr.length-1)
return newstr;
}
function reverse(str){
return str.split(",").reverse().join(",");
}
二 4.ABCD 5.ACE 6.AB 7.ABC 8.ABCD 9.ABCDE 10.ACD
三 1.sort方法用于对数组进行排序,它的参数是个闭包函数,用来确定排序规则,默认是按照大小从小到大排列,但是如果有参数,就会按照参数的返回值的正负来判断,比如要对一个数字数组进行倒序排序就需要一个闭包函数
var a = function(x,y){return y-x;};
然后把这个闭包作为参数传进去:
[3,2,1,5,8].sort(a); //=>[8,5,3,2,1]
实现机制就是对数组进行两两比较,如果闭包的返回值是负值,顺序就互相调换,正值或者零就不变,相当于一个简写的冒泡排序法.
2.DIV有回车,SPAN没有 DIV是block元素,默认自己占一行具备width,height等block才有的css样式,SPAN是inline元素,内嵌在DHTML结构中,默认不换行
DIV中可以包含SPAN,但是SPAN中包含DIV是不符合W3C标准的。
3.innerHTML属性 是标示一个包含标签内部全部html代码的字符串
outerHTML属性 是标示一个不但包含标签内部而且包含标签本身全部html代码的字符串
innerText属性 是标示一个包含标签内所有文本的字符串,不包含html标签的任何内容
4.属性加引号,不能有不匹配的标签,加定义
5.W3C标准
四.1.var rg = document.getElementsByName("radioGroup");
for( var i = 0; i < rg.length; i++ )
{
if( rg[i].checked )
{
alert("你选择了第" + (i+1) + "个单选框");
}
}
2.return str.split(",").reverse().join(",");
<head>
<title>无标题页</title>
<script type="text/javascript">
function foo()
{
var radios=document.getElementsByTagName("radio");
for(var i=0;i<radios.length;i++)
{
if(radios[i].checked)
{
alert("第"+i+1+"被选中啦!");
}
}
}
</script>
</head>
<body>
<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" onclick="foo()"/></body>
</html>
这个写法很经典,很容易误人子弟哦。
radio居然成了TagName,哈哈,太逗了。
天天打逗逗第一题a和d都是错的吧。
return str.split(",").reverse().join(",");
}
function reverse(str){
return str.split(",").reverse();
}
d是对的!var obj = //;等价于var obj ; 或 var obj = undefined;
var obj = //;这两个都是错的!
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();
var a,l;
a=new Array(str);
l=a.reverse();
alert(a.length+"22222222"+l);
return (l);
}foo();
</script>为什么我这么写,反转失效呢?!
求助下。哈哈。
我也测试过,第一题A和D都是错误的。只不D选项不是报当前行代码错误,而是把错误报在下一行。
本来我以为,var obj=//;这个是正则表达式的缩写呢?但是//注释的优先级比正则高,没办法,这个应该也是错的。而A是错的,是公认的。所以这题有问题。
看我写的:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script language="javascript">
function foo(){
var rad=document.getElementsByTagName("form")[0].childNodes;
var nodes=[];
for(var i=0;i<rad.length-1;i++){
if(rad[i].nodeName!='#text')
nodes.push(rad[i]);
}
for(var j=0;j<nodes.length-1;j++){
if(nodes[j].checked==true)
alert("这是第"+(j+1)+"个")
}
return false;
}function fooI(){
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) {
var arr=str.split(',');
return arr.reverse().join(",");
}window.onload=function(){
document.getElementsByTagName("form")[0].onsubmit=foo;
fooI();
}
</script>
</head><body>
<form name="form1" >
<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>
1)<html>
<body>
<script>
function foo() {
var obj = document.getElementsByName("radioGroup");
for(var i=0;i<obj.length;i++){
if(obj[i].checked){
alert("当前选中的是第"+eval(i+1)+"个单选框");
return true;
}
}
alert("还没有选择");
return false;
}
</script>
<body>
<form name="form1" >
<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>
<input type="button" value="check" onclick="foo()" />
</body>
</html>
2)<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<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) {
str = str.split(",");
str.reverse();
return str.toString() ;
}
</script>
</HEAD> <BODY>
<input type="button" value="执行" onclick="foo()" />
</BODY>
</HTML>
这样就没问题了
蛮简单的
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 'g,f,e,d,c,b,a';}foo();
<html>
<body>
<script>
function foo() {
var r=document.getElementsByName("radioGroup");
for(var i=0;i<r.length;i++){
(function(a){
r[a].onclick=function(){
alert(a+1);
}
})(i)
}
}
window.onload=function(){
foo();
}
</script>
<body>
<form name="form1">
<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>
function reverse(str) {
return str.split(",").reverse();
}
一、单选题
1、以下哪条语句会产生运行错误:(D)
A.var obj = ();
B.var obj = [];
C.var obj = {};
D.var obj = //;
2、以下哪个单词不属于javascript保留字:(B)
A.with
B.parent
C.class
D.void3、请选择结果为真的表达式:(C)
A.null instanceof Object
B.null === undefined
C.null == undefined
D.NaN == NaN
二、不定项选择题
4、请选择对javascript理解有误的:(AB)
A.JScript是javascript的简称
B.javascript是网景公司开发的一种Java脚本语言,其目的是为了简化Java的开发难度
C.FireFox和IE存在大量兼容性问题的主要原因在于他们对javascript的支持不同上
D.AJAX技术一定要使用javascript技术
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>
7、以下哪些是javascript的全局函数:(ABC)
A.escape
B.parseFloat
C.eval
D.setTimeout
E.alert
8、关于IFrame表述正确的有:(ABCD)
A.通过IFrame,网页可以嵌入其他网页内容,并可以动态更改
B.在相同域名下,内嵌的IFrame可以获取外层网页的对象
C.在相同域名下,外层网页脚本可以获取IFrame网页内的对象
D.可以通过脚本调整IFrame的大小
9、关于表格表述正确的有:(ABCDE)
A.表格中可以包含TBODY元素
B.表格中可以包含CAPTION元素
C.表格中可以包含多个TBODY元素
D.表格中可以包含COLGROUP元素
E.表格中可以包含COL元素
10、关于IE的window对象表述正确的有:(AB)
A.window.opener属性本身就是指向window对象
B.window.reload()方法可以用来刷新当前页面
C.window.location=”a.html”和window.location.href=”a.html”的作用都是把当前页面替换成a.html页面
D.定义了全局变量g;可以用window.g的方式来存取该变量
三、问答题:
1、谈谈javascript数组排序方法sort()的使用,重点介绍sort()参数的使用及其内部机制
如果有参数, 参数指定的回调函数接受两个参数, 用来返回第一个参数比第二个参数大(大于0), 等(0), 小(小于0), 没有则按默认规则排序.
2、简述DIV元素和SPAN元素的区别。
一个块元素, 一个行内元素.
3、结合text这段结构,谈谈innerHTML outerHTML innerText之间的区别。
innerHTML: 节点内部HTML内容.
outerHTML: 含节点自身的HTML内容.
innerText: 节点内文本节点内容, IE支持.
4、说几条XHTML规范的内容(至少3条)
属性加双引号, 标签必须结束
5、对Web标准化(或网站重构)知道哪些相关的知识,简述几条你知道的Web标准?
不知道
四、程序题:
1、完成foo()函数的内容,要求能够弹出对话框提示当前选中的是第几个单选框。
<html>
<body>
<script>
function foo() {
// 在此处添加代码
var form = document.form1;
var radios = form.getElementsByTagName('input');
for(var i = 0; i < radios.length; i ++) {
alert('第' + i + '个单选框被选中');
}
return false;
}
</script>
<body>
<form name="form1" >
<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()函数调用弹出”成功”的对话框。代码应尽量简短。
/**
* 学艺不精, 忘记了数组的reverse;
*/
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) {
// 在此处加入代码,完成字符串翻转功能
var length = str.length - 1;
var max = str.length / 2;
var tmp;
for(var i = 0; i < max; i ++) {
tmp = str[length - i];
str[length - i] = str[i];
str[i] = tmp;
}
}
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) {
str = str.split(',');
var length = str.length - 1;
var max = str.length / 2;
var tmp;
for(var i = 0; i < max; i ++) {
tmp = str[length - i];
str[length - i] = str[i];
str[i] = tmp;
}
return str.join(',');
}
foo()
</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 "成功";//请注意第三行代码,只要弹出就可以了吧?
}
http://im.baidu.com/ginvite/gi/url_confirm.php?idstr=18ABF0F161699C6C51E92EBE82C743C0883A949C423581802827F0DEA1888803
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();
}foo();