前端笔试题总结---持续更新

写在前面:。。。。

1字符串逆序

function reverse(str){

    return str.split("").reverse().join("");//直接用函数

    

    var str1="";//从后向前输出

    for(var i=str.length-1;i>=0;i--){

        str1+=str[i];

    }

    return str1;

        

    var len=str.length;//字符串原地逆序

    for(var i=0;i<len;i++){

      str[i]=str[len-1-i];

    }

    return str;

}

2弹出对话框提示当前选中的是第几个单选框

<input type="radio" name="radioGroup" onclick="foo()"/>

<input type="radio" name="radioGroup" onclick="foo()"/>

<input type="radio" name="radioGroup" onclick="foo()"/>

<input type="radio" name="radioGroup" onclick="foo()"/>

<input type="radio" name="radioGroup" onclick="foo()"/>
function foo(){

    var reg=document.getElementsByName("radioGroup");

    //获取一组有相同名称的单选框dom对象

    for(var i=0;i<reg.length;i++){

        if(reg[i].checked){

            alert("第"+(i+1)+"单选框");

        }

    }

}

3求y和z 的值是多少?

 var x = 1; 

 var y = 0; 

 var z = 0; 

 function add(n){n=n+1;} 

 y = add(x); 

 //alert(y);

 function add(n){n=n+3;} 

 z = add(x);

 //alert(z);
//题目分析,此题的陷阱在于函数都没有返回值。所以赋值后都是undefined。若给函数都加上return,其结果都将变成4,这是因为后面同名称的函数会覆盖前面一个。

 4如何获取表单<select>(下拉列表)域的选择部分的文本和value值?

  <select  size="1" onchange="sel(this)">

     <option value="a">1</option>

    <option value="b">2</option>

    <option value="c">3</option>

  </select>
function sel(obj){

    var obj=document.getElementsByTagName("select");

    //select下是一个options数组,拥有change事件的还有text和textarea 

    alert("文本为:"+obj.options[obj.selectedIndex].text);

    alert("值为:"+obj.options[obj.selectedIndex].value);

    }

5javascript怎样选中一个checkbox,怎样设置它无效和不能选择?

function check(){

    var obj=document.getElementsByName("cb1");

    for(var i=0;i<obj.length;i++){

        obj[i].checked="true";//某一个选中

        obj[i].disabled="true";//选择失效

    }

6全选(或者全不选)的所有指定名称的checkbox 

function option(state,name){

    var obj=document.getElementsByName("name");

    for(var i=0;i<obj.length;i++){

        obj[i].checked=state;

    }

}

7全选(或者全不选)的所有的checkbox 

function selectAll(state){

    var obj=document.getElementsByTagName("input"){//获取所有的input标签对象

        for(var i=0;i<obj.length;i++){

            if(obj[i].type="checkbox"){//过滤出我们需要的checkbox类型

                obj[i].checked=state;

            }

        }

    }

}

8全选指定值(可能有多个值,以逗号分隔)的checkbox 

function select(value,name){

    var obj=document.getElementsByName("name"){

        var values=value.split(",")//把字符串转化为数组

        for(var i=0;i<values.length;i++){

            for(var j=0;j<obj.length;j++){

                if(obj[j].value==values[i]){//对每一个指定的值做判断

                    obj[j].checked=true;

                }

            }

        }

    }

}

 9补充按钮事件的函数,确认用户是否退出当前页面,确认之后关闭窗口;

function confirm(){

    if(confirm("确认退出?")){

        window.close();

    }

}

10 写出简单描述html标签(不带属性的开始标签和结束标签)的正则表达式,并将以下字符串中的html标签去除掉

   var str = "<div>这里是div<p>里面的段落</p></div>";

function replaceReg(str){

    var reg = /<\/?\w+\/?>/gi;//这里\/是转义/防止与正则表达式的结束符冲突,后面的问号是可选(起始标签和结束标签),后面的可选是匹配单标签<br/>等。这是个全局匹配,标签部分大小写

      alert(str.replace(reg,""));//字符串替换函数

}

11将文档中className有“test”的td标签背景色设为黄色

var obj=document.getElementsByTagName("td");

    for(var i=0;i<obj.length;i++){

        if(obj[i].className.indexOf("test")!=-1){

            obj[i].style.backgroundColor="yellow";

        }

    }    

12用javascript实现控制一个文本框的输入字数限制,超出字数限制文本框边框飘红显示

var oInput=document.getElementById("a");

oInput.onkeyup=function(){

    this.style.border=this.value.length>5?"1px solid red":"";

}

13让文本输入框的宽度随着里面的内容多少自动伸缩自适应

var oInput = document.getElementById("autoInput"); 

var sSize = oInput.getAttribute("size"); 

oInput.onkeydown = function(){ 

    var sInputValue = oInput.value; 

    if(sInputValue === "" || sInputValue.length <= sSize || sInputValue.length > 60){ return; }

    else{ oInput.setAttribute("size",sInputValue.length); } 

}

 14使用Javascript打印出1-10000之间的所有素数

function sushu(num){

    var flag=true;

    for(var i=2;i<num;i++){

        if(num%i==0){

            flag=false;

            break;

    }

}

    return flag;    

}

var arr=[1]

for(var i=3;i<=1000;i++){

    var k=sushu(i);

    if(k){

        arr.push(i);

    }

}

15 我们把一个数字倒着读和原数字相同的数字称之为对称数,(例如1,121,88,8998),不考虑性能,请找出1—10000之间的对称数

function duichen(num){

    var flag=false;

    var str=num.toString();

    var str1="";

    for(var i=str.length-1;i>=0;i--){

        str1+=str[i];

    }

    if(str==str1){

        flag=true;

    }else{

        flag=false;

    }

    return flag;

}

alert(duichen(121));

var arr=[];

for(var i=1;i<=1000;i++){

    var k=duichen(i);

    if(k){

        arr.push(i);

    }

}

16setTimeout调用函数

var obj=function(msg){

     this.msg=msg;

     this.shout=function(){

         alert(this.msg);

     }

     this.waitAndShout=function(){

         //每隔五秒调用上面的shout方法

         var self=this;

         //由于setTimeout是全局方法,其this指向window,用that保存当前的执行上下文

         setTimeout(function(){

             self.shout();

         },1000)

     }

 }

17把字符串转化为JSON对象

 var str="haha=123&hehe=234&key=456";

 var arr=str.split("&");

 var obj={};

 for(var i=0;i<arr.length;i++){

     var arr1=arr[i].split("=");

     obj[arr1[0]]=arr1[1];

 }

 18在匿名函数中调用自身,例如实现阶乘

var a=(function (num){

    if(num==1){

        return 1;

    }else{

        return num*arguments.callee(num-1)//调用函数自身

    }

})(5);

19截取字符串abcdefg的efg

var str="abcdefg";

if(/efg/.test(str)){

    var str1=str.slice(str.indexOf("efg")) ;

    //字符串切割用slice。获取子字符串在源字符串中的位置用indexOf

}

20判断一个字符串中出现次数最多的字符,统计这个次数

var str="abcdefgacda";

function findMax(str){

    var obj={};

for(var i=0;i<str.length;i++){

    if(!obj[str[i]]){

        obj[str[i]]=1;

    }else{

        obj[str[i]]+=1;

    }

}

var max=0;

var s;

for(var key in obj){

    if(obj[key]>max){

        max=obj[key];

        s=key;

    }

}

var str="字符是:"+s+"频率是:"+max;

alert(str);

}

21去除数组中的重复元素

function unique(a){

    var obj={};

    var result=[];

    for(var i=0;i<a.length;i++){

        if(!obj[a[i]]){

            obj[a[i]]=1;

            result.push(a[i]);

        }

    }

    alert(result);

}

 22简单实现js中继承

function Animal(name){

    this.name=name;//共有属性

}

Animal.prototype.getName=function(){

    alert(this.name);

}

function Dog(name,age){

    Animal.call(this,name);//继承属性

    this.age=age;//自己的方法

}

Dog.prototype=new Animal();

Dog.prototype.contructor=Dog;

Dog.prototype.getAge=function(){

    alert(this.age);//自己的方法



}

var xiaogou=new Dog("xiao",21);

xiaogou.getName();

xiaogou.getAge();

24FF要实现outerHTML还需要特殊处理

function getOutHtml(id){

    var el=document.getElementById("id");

    var oDiv=document.createElement("div");

    var htm=el.cloneNode(true);

    oDiv.appendChild("htm");

    var result=oDiv.innerHTML;

    document.removeChild("oDiv");

}

 

 

你可能感兴趣的:(笔试题)