一套完整的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.   

    最后一题稍微有点意思:
    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();
      

  2.   

    4.1
    <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>
      

  3.   

    一、
    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.   

    一 1.A  2.B  3.C
    二 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(",");
      

  5.   

    <!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>
        <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>
      

  6.   

    var radios=document.getElementsByTagName("radio");
    这个写法很经典,很容易误人子弟哦。
    radio居然成了TagName,哈哈,太逗了。
    天天打逗逗第一题a和d都是错的吧。
      

  7.   

    最后一题写成一下两种答案都正确:function reverse(str){
       return str.split(",").reverse().join(","); 
       } 
    function reverse(str){
       return str.split(",").reverse(); 
       } 
      

  8.   


    d是对的!var obj = //;等价于var obj ; 或 var obj = undefined;
      

  9.   

    我在FF3.5里测试var obj = ();
    var obj = //;这两个都是错的!
      

  10.   

    最后一题,有些疑问<script type="text/javascript">
    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>为什么我这么写,反转失效呢?!
    求助下。哈哈。
      

  11.   

    第一题D选项会报错,在IE7.0环境测试过。//表示注释
      

  12.   


    我也测试过,第一题A和D都是错误的。只不D选项不是报当前行代码错误,而是把错误报在下一行。
    本来我以为,var obj=//;这个是正则表达式的缩写呢?但是//注释的优先级比正则高,没办法,这个应该也是错的。而A是错的,是公认的。所以这题有问题。
      

  13.   

    9楼的,“ getElementsByTagName("radio")”有这种写法吗?
    看我写的:<!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>
      

  14.   

    new Array()构造函数的参数是数组的元素,是不能是字符串,这样只相当于一个元素
      

  15.   

    第四题
    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>
    这样就没问题了
    蛮简单的
      

  16.   


    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();
      

  17.   

    4.1
    <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>
      

  18.   

    最后一题 有意思。
    function reverse(str) {
        return str.split(",").reverse();
    }
      

  19.   

    连我都觉得不太难,哎JAVAscript学习有用吗
      

  20.   

    各个浏览器对JavaScript的解释都不一样,尤其是Firefox和IE之间差异很到。所以错不错测试一下就知道了
      

  21.   

    (//珍爱生命,远离CSDN !) 
      

  22.   

    ASP.NET的来观摩观摩,不错的题目。
      

  23.   

    昏!我只学过Java没有学JSP帮不了你!
      

  24.   


    一、单选题
    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;
      }
    }
      

  25.   

    最后一题的发错了...<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(',');
      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>
      

  26.   

    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) {
    return "成功";//请注意第三行代码,只要弹出就可以了吧?
    }
      

  27.   

    百度Hi编程技术交流群,要进的!点击下面链接接受邀请:
    http://im.baidu.com/ginvite/gi/url_confirm.php?idstr=18ABF0F161699C6C51E92EBE82C743C0883A949C423581802827F0DEA1888803
      

  28.   

    hao  bu  cuo  
      

  29.   

    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();