前端筆試題
2018年9月14日的一次筆試題。
JS部分:
1,typeof []; // "object"
2,[].constructor == Object; // false [].constructor == Array ; // true
3,請實現“<a id = "qqlink" href = "http://www.qq.com">qq</a>”用戶點擊qq時不允許瀏覽器跳轉到qq.com。
答:event.preventDefault();
4,
var x = 10; var foo = { x: 20, bar:function() { var x = 30; return this.x; } }; console.log( foo.bar() ); //20 console.log( (foo.bar)() ); //20 console.log( (foo.bar = foo.bar)() ); //10 console.log( (foo.bar, foo.bar)() ); //10 console.log( foo.bar.call(window)); //10 console.log( foo.bar.call(foo) ); //20
5,請實現函數substring(beginIndex, endIndex),不允許使用javascript標準的substring函數。
function substring (startIndex, endIndex) { var str = this; var strArr = str.split(‘‘).splice(startIndex, endIndex-startIndex).join(‘‘); return strArr; } var str = "hello world"; substring.call(str,1,4); //"ell"
6,請實現一個函數unique(Array arr ),功能是去除數組中重復的數據。
function unique(arr) { varlen = arr.length; var res = []; for(var i = 0; i < len; i++){ if(res.indexOf(arr[i]) == -1){ res.push(arr[i]); } } return res; } var arr = [‘1‘,‘2‘,‘3‘,‘1‘]; unique(arr); // [‘1‘,‘2‘,‘3‘]
以上代碼只能實現值的去重,無法去除數組中對象的重值。
7,var s = {1:1, 2:2, }; alert(s[‘1‘]),在chrome、ff4、IE6下的運行結果各是什麽?
答: 1 1 報錯
8,密碼輸入框的規則是:
1,首位必須是字母且大寫;
2,由3-15位字母,數字或下劃線組成
請使用正則表達式描述此規則。
答:/^[A-Z][A-Za-z0-9_]{3,15}/ 或者/^[A-Z]\\w{3,15}/
9,寫一個函數 revertInt( Number nb )功能是反轉整數,輸出為反轉後的結果,符號保持不變。如輸入123,輸出321。
function revertInt( nb ) { var nbStr = nb.toString(); var nbArr = nbStr.split(‘‘).reverse().join(‘‘); return Number(nbArr); } revertInt(123); //321
10,寫一個函數readInt(Number nb ),功能是讀出整數,如輸入123期望的輸出是“一百二十三”。
CSS部分:
1,CSS中display:inline 與 block, inline-block三者有什麽區別。
2,CSS中visibility:hidden 與 display:none 有什麽區別。
3,劃一條水平線,不允許使用<hr>,註意瀏覽器兼容性。
4,CSS定義中{margin: 0px 20px 10px},margin-top, right, bottom, left各是多少。
5,CSS實現 3*3的表格,不用<table>。
綜合題:
1,列舉常用的網站優化的方法。
2,什麽是js跨域,原因是什麽,解決方法是什麽。
3,列舉html5包含的新特性。
4,列舉http header並簡要說明其作用。
5,什麽是doctype,有什麽作用。
面試:
1,cookie,sessionStorage和localStorage
2,http緩存機制
3,301、302、304狀態碼
4,XSS , XSRF
5,bootstrap網格原理,template.js原理
6,jquery和vue的區別
前端筆試題