面试题

都是我遇到的面试题,可能有点出处,但整体题是一样的,为大家的面试之路添一块砖

1.去掉html元素中的<span></span>但中间的内容要保留
 QUOTE: /<\/?span>/ 2.去掉&但不能去掉以amp开头的&,比如&&sdfsdf&&jsldjssjflsdj& QUOTE: /&(?!amp;)/g 3.去掉数组中重复的,并且记录重复的个数(这个答案很多很多种,我这个不见得最好,但感觉效率高些) QUOTE: var s = [0,2,3,4,4,0,2]; for(var i=0,o={},tmp=[],count=0,l=s.length;i<l;i++){ if(o[s[i]]){ count++; }else{ o[s[i]]=1; tmp.push(s[i]) } } alert(count); alert(tmp) 4. QUOTE: for(var i=0;i<10;i++){ var input = document.creatElement('input'); input.onclick = function(){alert(i)}; document.body.appendChild(input); } 问当我点击第五个时显示是多少 10 这个是个老问题了,不多解释 如果想显示5 -function(j){input.onclick = function(){alert(j)}}(i); 5 QUOTE: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title></title> </head> <body> <input id='a' value="a" /> <input id='b' value="b" /> </body> </html> <script> function test(){ this.value = 1; this.get = function(){ alert(this.value) } } var T = new test; document.getElementById('a').onclick = function(){ T.get(); } document.getElementById('b').onclick = T.get; </script>  结果是 首先 document.getElementById('a').onclick = function(){ T.get(); } 在T.get()这个外边this是a这个input 但在get这个方法内的this还是T 所以是1 document.getElementById('b').onclick = T.get; 这时get中的this就已经是input了而不是T自己所以 是b 6.创建一个div,宽200,高200,1px黑边从左上角匀速移动到右下角,并且要固定到右下角 QUOTE: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> </head> <body> </body> </html> <script> -function(){ var d = document,db = document.body, div = d.createElement('div'),timer,t=0,ds = div.style; ds.cssText = ";position:absolute;top:0;left:0;width:200px;height:200px;border:1px solid #000;"; db.appendChild(div); timer = setInterval(function(){ //步长我写死为5 if(div.offsetWidth+div.offsetLeft>=db.clientWidth&&div.offsetHeight+div.offsetTop>=db.clientHeight){ clearInterval(timer); //不要说什么这个样会影响性能,这个影响太小了,onresize有些时候效果并不好 setInterval(function(){ ds.left = db.clientWidth - div.offsetWidth + 'px'; ds.top = db.clientHeight - div.offsetHeight + 'px'; },500) }else{ ds.left = (div.offsetWidth+div.offsetLeft>=db.clientWidth?db.clientWidth - div.offsetWidth:div.offsetLeft+5) + 'px'; ds.top =(div.offsetHeight+div.offsetTop>=db.clientHeight? db.clientHeight - div.offsetHeight:div.offsetTop+5) + 'px'; } },10) }() </script>

 

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