嗯,一共10道小題,60分鐘。幾天前看過題目了,也簡單地挑出了知識點,並趁着還有時間把徹底不懂的點看了一下。javascript
今天鼓起勇氣開始答題,結果,呃,這套題目不像表面看起來那麼簡單,原覺得複習過以後至少拿到80%,而後作完發現只拿的到最多50%的樣子。css
廢話就這些了,但願能提個醒,這套題目不是那麼簡單。html
P.S.沒空看網頁的請直接打包帶走,拿去就能直接測試前端
HTML: <ul id = "nav"> <li><a href="http://ju.taobao.com/tg/brand.htm">品牌團</a></li> <li><a href="http://ju.taobao.com/tg/point_list.htm">整點聚</a></li> <li><a href="http://ju.taobao.com/jusp/jiazhuang/tp.htm">聚家裝</a></li> <li><a href="http://ju.taobao.com/jusp/liangfan/tp.htm">量販團</a></li> </ul> Object: { "index" : 1, // 序號 "name" : "品牌團", "link" : "http://ju.taobao.com/tg/brand.htm" }
P.S.上面的題目來自w3cfuns,感謝前輩的題目html5
從上面的分析能夠發現:java
function tapHandler(e){ alert("成功"); } var btn = document.getElementById("btn"); btn.addEventListener("touchend", tapHandler, false); btn.addEventListener("MSPointerUp", tapHandler, false);//IE
function Counter(){ var num = 0;//私有成員 this.count = function(){ num++; } this.display = function(){ return num; } }
在我看來,前端工程化就是在整個開發過程當中用自動化工具來簡化開發工做。從項目構建到模塊化開發,模塊共享再到調試以及版本控制和發佈,這整個過程當中不少地方均可以利用自動化工具來幫助咱們高效地完成工做。也有不少好用的IDE,好比知名的Grunt,京東的JDF等等,能夠根據簡單的配置文件自動生成項目目錄,並提供模塊化開發所需的模塊管理組件以及版本控制功能,能夠自動處理不少細節問題,讓開發人員能夠更多地關注業務實現,以提升工做效率。
var nav = document.getElementById('nav'); function listHandler(e){ e = e || window.event; var target = e.target || e.srcElement; if(target.nodeName === 'A'){ //計算索引 var currLi = target.parentNode; var i = 1; while(true){ if(currLi.previousSibling === null){ break; } else{ currLi = currLi.previousSibling; if(currLi.nodeName === 'LI'){//再作一次篩選,防止li間的空白字符被看成有效節點 i++; } } } //返回Object return {index: i, name: target.innerHTML, link: target.href }; } } if(nav.addEventListener){ nav.addEventListener("click", listHandler, false); } else if(nav.attachEvent){//IE nav.attachEvent("onclick", listHandler); }
window.onload = function(){ var canvas = document.createElement("canvas"); var img = document.getElementById("targetImg"); if(canvas.getContext){ var pos = {x: 0, y: 0, w: 0, h: 0};//結果對象 var totalW = canvas.width = img.width; var totalH = canvas.height = img.height; var ctx = canvas.getContext("2d"); ctx.drawImage(img, 0, 0); var imgData = ctx.getImageData(0, 0, totalW, totalH); var data = imgData.data;//獲取rgba值 var r = 0, g = 0, b = 0; for(var i = 0;i < data.length;i += 4){ r = data[i]; g = data[i+1]; b = data[i+2]; if(r === 255 && g === 0 && b === 0){ //找到左上角 pos.x = (i / 4) % totalW; pos.y = (i / 4) / totalW; //找到寬度 for(var j = i + 4;j < totalW * (pos.y+1) * 4;j += 4){ r = data[j]; g = data[j+1]; b = data[j+2]; if(!(r === 255 && g === 0 && b === 0)){ pos.w = (j / 4) % totalW - pos.x; break; } } //找到高度 for(j = i + totalW * 4; j < totalW * totalH * 4;j += totalW * 4){ r = data[j]; g = data[j+1]; b = data[j+2]; if(!(r === 255 && g === 0 && b === 0)){ pos.h = (j / 4) / totalW - pos.y; break; } } break; } } alert(pos.x + ', ' + pos.y + ', ' + pos.w + ', ' + pos.h);/// } }
var $ = function(s){ return document.querySelector(s); } var mask = document.createElement('div'); var body = document.body; var scale = 650 / 1366;//假設默認屏幕寬度是1366px mask.style.width = scale * 100 + '%'; mask.style.height = '50%'; mask.style.maxHeight = '400px'; mask.style.maxWidth = '650px'; mask.style.minWidth = '320px'; mask.style.zIndex = 9999; mask.style.position = 'fixed'; mask.style.left = (100 - scale * 100)/2 + '%'; mask.style.top = '25%'; mask.style.backgroundColor = '#ccc'; mask.style.display = 'none'; mask.innerHTML = '點擊浮層關閉'; body.appendChild(mask); var btn = $('#btn'); btn.onclick = function(e){ mask.style.display = 'block'; body.style.overflowY = 'hidden'; } mask.onclick = function(e){ mask.style.display = 'none'; body.style.overflowY = 'auto'; }
var arr = [1, 2, 2, 4, -1, 3, 6, 15, 1]; function count(arrArg){ var arr = arrArg.concat();//複製一個數組 arr.sort();//排序 var index = 0; var result = [{value : arr[0], times : 1}];//結果數組 for(var i = 1;i < arr.length;i++){ if(arr[i] === result[index].value){ result[index].times++; } else{ result[++index] = {value : arr[i], times : 1};//建立新元素並存入結果數組 } } return result; }
利用存儲在客戶端的Cookie來維持會話狀態,能夠簡單地用URL傳值(把一個特殊串做爲會話ID嵌在頁面URL中),或者使用HTML5的localStorage,IndexedDB等技術,但須要作好瀏覽器兼容
//JQuery //插入節點 var richText = $('<div id="richText">' + text + '</div>'); $(document.body).append(richText); //設置樣式 $('p>img').each(function(){ var $p = $(this).parent(); console.log($p.html());/// if($p.children().length === 1 && $p.find('img').length === 1 && $p.text() === ''){ $p.addClass('pic'); } });
<style type="text/css"> .top{ width : 50px; height : 50px; z-index : 9999; position : fixed; bottom : 20px; right : 20px; display : none; background-color:#ccc; border:1px solid red; } </style> <!-- ie6 hack --> <!--[if lt IE 7]> <style type="text/css"> /*防止抖動*/ body{ background-image:url(about:blank); background-attachment:fixed; } /*用css表達式模擬fixed*/ div.top{ position: absolute; right: 20px; top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop,10)||0)-(parseInt(this.currentStyle.marginBottom,10)||0)) - 20); } </style> <![endif]--> <script type="text/javascript"> var topDiv = document.createElement('div'); topDiv.className = 'top'; topDiv.innerHTML = 'TOP'; topDiv.onclick = function(){ document.documentElement.scrollTop = document.body.scrollTop = 0; this.style.display = 'none'; } document.body.appendChild(topDiv); function topHandler(e){ var dis = document.body.scrollTop; dis = dis === 0 ? document.documentElement.scrollTop : dis;//FF if(dis >= 100){ topDiv.style.display = 'block'; } else{ topDiv.style.display = 'none'; } } if(document.addEventListener){ document.addEventListener('scroll', topHandler, false); } else if(document.attachEvent){//IE,給document和body添加onscroll都沒有用,只能給window添加 window.attachEvent('onscroll', topHandler); }
把全部的坑的都踩了一遍,第十題原本費了好大勁用onmousewheel搞定了,結果想一想以爲要用onscroll。node
還有JQuery的第九題,看似特別好欺負,誰知道JQuery裏面文本不算節點的,用siblings用next用prev用children用:only-child都~~~沒有用,測試了好久才發現沒有TextNode一說,直接致使N種方案所有失效,作完發現還不如不用JQuery呢,惟一的便利就是$('strHtml')。。express
不知道是否是個人理解能力有問題,以爲有的題目說的並不清楚,好比第九題,想考JQuery,題目的意思更像是作字符串處理,找紅色塊的位置,只要左上角座標嗎?不說清楚,答題的只好把(x, y, w, h)全都算了一遍。。。canvas
由於題目表意不明,須要不停地揣摩出題人的意圖,而時間只有60分鐘,因此,答題時候應該「漸進加強」,明確每題只有6分鐘,不行就只完整實現最簡單的功能,好比只找出紅色塊左上角座標,力求完整,千萬不要出現代碼由於Syntax Error而不能運行的狀況,不然就真的一分都沒有了。。前端工程化
打包下載,全部東西都在這裏,須要的朋友儘管拿去,一塊兒考試也是一種緣分,雖然成事在天,加油。