前端筆試題總結---持續更新

寫在前面:。。。。javascript

1字符串逆序html

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彈出對話框提示當前選中的是第幾個單選框java

<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,怎樣設置它無效和不能選擇?app

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 dom

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補充按鈕事件的函數,確認用戶是否退出當前頁面,確認以後關閉窗口;ui

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");
}
相關文章
相關標籤/搜索