1. 程式人生 > >騰訊2015春招web前端開發練習卷

騰訊2015春招web前端開發練習卷

1、jquery ajax中都支援哪些返回型別?
答案: A B C D 
xml
html
jsonp
json
2、下面哪些語句可以 在JS裡判斷一個物件oStringObject是否為String。
答案: A
oStringObject instanceof String
typeof oStringObject == 'string'
oStringObject is String
以上答案都不正確
3、常見的瀏覽器端的儲存技術有哪些?
答案: A B D 
cookie
localStorage
session
userData
解:userData
IE瀏覽器可以使用userData來儲存資料,容量可達到640K,這種方案是很可靠的,不需要安裝額外的外掛。缺點:它僅在IE下有效。
4、如何規避javascript多人開發函式重名問題。
答案: A B
根據不同的開發人員實現的功能,在函式名加字首
每個開發人員都把自己的函式封裝到類中,然後呼叫的時候即使函式名相同,但是因為是要類.函式名來呼叫,所以也減少了重複的可能性
以上都不正確
5、下面屬於javascript基本資料型別的有?
答案: A B C D
字串
數字
null
undefined
6、下面有關html結構描述正確的有?
正確答案: A B D
<ul> <li> </li> </ul>
<ol> <li> </li> </ol>
<dl><dt><dd></dd></dt></dl>
<table> <tr> <td></td> </tr> </table>
解:C應該是<dl><dt></dt><dd></dd></dl>
7、在bootstrap中,關於導航條,下列說法正確的是?
答案: A B C D
應該將被包裹的元素放到navbar-collapse類中
表單應該放置於navbar-form內
可以使用navbar-left和navbar-right來對齊導航條
可以使用navbar-fixed-top和navbar-fixed-bottom來將導航條固定到頂部或底部
8、以下是行內元素的有()
答案: A B
span
input
ul
p
9、下面關於IE、FF下面指令碼的區別描述錯誤的是?
答案: A B D
innerText IE支援,FIREFOX不支援
document.createElement FIREFOX支援,IE不支援
setAttribute('class','styleClass') FIREFOX支援,IE不支援

用setAttribute設定事件 FIREFOX不支援,IE支援
10、下面有關javascript內部物件的描述,正確的有?
答案: A B C D
History 物件包含使用者(在瀏覽器視窗中)訪問過的 URL
Location 物件包含有關當前 URL 的資訊
Window 物件表示瀏覽器中開啟的視窗
Navigator 物件包含有關瀏覽器的資訊
11、假設當前螢幕分別率為1024×768,定義一個居中的佔螢幕一半大小的表格的語句是
答案: A B C D
<TABLE ALIGN=”CENTER” WIDTH=”50%”></TABLE>
<TABLE ALIGN=”CENTER” WIDTH=”512″></TABLE>
<DIV ALIGN=”CENTER”><TABLE WIDTH=”512″></TABLE></DIV>
<CENTER><TABLE WIDTH=”50%”></TABLE></CENTER>
12、嵌入在HTML文件中的影象格式可以是?
答案: A C D
*.gif

*.tif
*.bmp
*.jpg
13、關於h標籤
<h1>h1. Bootstrap heading <small>Secondary text</small></h1>
以下說法正確的是
答案: A D
<h1>最大
<h6>最大
<small>用法錯誤
<small>表示副標題
14、下面屬於CSS3新增屬性的有?
答案:A B C D
box-shadow
text-shadow
border-radius
rgba
15、問一份標準的HTML文件有哪幾個必須的HTML標籤?
答案: A B C D
<html>
<head>
<title>
<body>
16、請給Array本地物件增加一個原型方法,它用於刪除陣列條目中重複的條目(可能有多個),返回值是一個包含被刪除的重複條目的新陣列。

答案:
Array.prototype.delRep=function(){
    if(this.length<=1){
        return [];
    }
    this.sort();
    var res=[this.shift()];
    for(var i=0;i<this.length;i++){
        if(this[i]!==res[res.length-1]){
            res.push(this.splice(i--,1)[0]); //注意此處
        }
    }
    return this;
}
解:以上程式碼中若return res;表示去重後的原陣列;可以直接利用Set結構進行陣列去重。
17、請填充程式碼,使mySort()能使傳入的引數按照從小到大的順序顯示出來。
function mySort() {
    var tags = new Array();//使用陣列作為引數儲存容器
    _________請補充你的程式碼
    return tags;//返回已經排序的陣列
}
var result = mySort(50,11,16,32,24,99,57,100);/傳入引數個數不確定
console.info(result);//顯示結果
答案:
tags=[...arguments];
tags.sort(function(item1,item2){
    return item1-item2;
});
18、用javascript實現使用者登入驗證的程式碼。
答案:
var checkObject=function(){  
    var tipP=document.createElement("p");  
    tipP.appendChild(document.createTextNode("密碼錯誤"));  
    var tipU=document.createElement("p");  
    tipU.appendChild(document.createTextNode("使用者名稱錯誤"));  
   
    function addErrorTip(node,type){  
        node.className='error';  
        if(type=='username'){  
            node.parentNode.appendChild(tipU);    
        }else if(type == 'password'){  
            node.parentNode.appendChild(tipP);  
        }  
    }  
    function removeErrorTip(node,type){  
        node.className='';                  
        if(type==='username'){                      
            node.parentNode.removeChild(tipU);    
        }else if(type==='password'){  
            node.parentNode.removeChild(tipP);  
        }  
    }  
    function isValidName(value){  
        if(value){  
            return true;  
        }else{  
            return false;  
        }  
    }  
    function isValidPassword(password){  
        var lenIsEnough=password.length>6; //密碼長度大於6  
        var hasDigital=/{\d}+/.test(password); //密碼包含數字  
        var hasCharater=/{\w}+/.test(password); //密碼包含其它字元           
        return lenIsEnough&&hasDigital&&hasCharater;  
    }  
    return {  
        addErrorTip:addErrorTip,  
        removeErrorTip:removeErrorTip,  
        isValidName:isValidName,  
        isValidPassword:isValidPassword  
    };  
};  
//建立一個檢查物件的例項checkObj      
var checkObj=checkObject();  
var form=document.forms['login-form'];  
var username=form['username'];   //name是關鍵字  
var password=form['password'];   
         
form.addEventListener('submit',function(e){                  
    if(!checkObj.isValidName(username.value)) {  
        checkObj.addErrorTip(username,'username');  
        e.preventDefault();       
    }  
    if(!checkObj.isValidPassword(password.value)) {  
        checkObj.addErrorTip(password,'password');                                
        e.preventDefault();  
    }  
}, false);  
  
form.addEventListener('reset',function(){  
    checkObj.removeErrorTip(username,'username');  
    checkObj.removeErrorTip(password,'password');  
},false);  
       
username.addEventListener('blur',function() {  
    if (!checkObj.isValidName(username.value)) {  
        checkObj.addErrorTip(username,'username');  
    }  
}, false);  
  
username.addEventListener('focus',function() {  
    checkObj.removeErrorTip(username,'username');  
}, false);  
  
password.addEventListener('blur',function() {  
    if (!checkObj.isValidPassword(password.value)) {  
        checkObj.addErrorTip(password,'password');  
    }  
}, false);  
  
password.addEventListener('focus',function(event) {  
    checkObj.removeErrorTip(password,'password');  
}, false);