首页 > 代码库 > JS题目

JS题目

定义一个对象o
o中有两个方法,getO()和setO(str),str是字符串
默认情况下调用getO() ,输出结果是"aaa",当setO("bbb")后,再次调用getO(),得到结果“bbb”

 

 1 var o = { 2     data: "aaa", 3     getO: function(){ 4         console.log(this.data);  //如果这里不加this,会报错,说data未定义,why 5     }, 6     setO: function(str){ 7         this.data =http://www.mamicode.com/ str; //问题同上 8     } 9 }10 o.getO();11 o.setO("aaa");12 o.getO();

请实现,鼠标点击页面中的任意标签,alert该标签的名称.(注意兼容性)

1、给document添加click事件:document.onclick=function(){};

2、兼容性 e = event || window.event;   target = event.target || event.srcElement; (这里必须为event, e, evt等无效)

3、得到target的标签:target.tagName;

代码:

 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4     <script> 5        document.onclick = function show(event) { 6              e = event|| window.event; 7                var target = event.target || event.srcElement; 8                alert(target.tagName); 9        }10     </script>11 </head>12 <body>13     <div id="div"><span>SPAN</span>DIV</div>14     <span>SPAN</span>15     <p>P</p>    16 <body>17 </html>
View Code

判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母、数字、下划线,总长度为5-20

var reg = /^[a-zA-Z][a-zA-Z_0-9]{4,19}$/;reg.test("a1a__a1a__a1a__a1a__");

判断一个字符串中出现次数最多的字符,统计这个次数

1、循环for/in遍历对象

2、if(!res[key]) {res[key] = 1;} else {...}

 1         var str = "aabbbsfdsf"; 2         var res = {}; 3         for(var i = 0; i < str.length; i++) { 4             var tmp = str[i]; 5             if(!res[tmp]) { 6                 res[tmp] = 1; 7             }else { 8                 res[tmp]++; 9             }10         }11 12       var big = 0;13       var note = 0;14         for(var key in res) {15             if(res[key] > note) {16                 note = res[key];17                 big = key;18             }19         }20         console.log(big);
View Code

IE与FF脚本兼容性问题

(1) window.event:
表示当前的事件对象,IE有这个对象,FF没有,FF通过给事件处理函数传递事件对象

(2) 获取事件源
IE用srcElement获取事件源,而FF用target获取事件源

(3) 添加,去除事件
IE:element.attachEvent(“onclick”, function) element.detachEvent(“onclick”, function)
FF:element.addEventListener(“click”, function, true) element.removeEventListener(“click”, function, true)

(4) 获取标签的自定义属性
IE:div1.value或div1[“value”]
FF:可用div1.getAttribute(“value”)

(5) document.getElementByName()和document.all[name]
IE;document.getElementByName()和document.all[name]均不能获取div元素
FF:可以

(6) input.type的属性
IE:input.type只读
FF:input.type可读写

(7) innerText textContent outerHTML
IE:支持innerText, outerHTML
FF:支持textContent

(8) 是否可用id代替HTML元素
IE:可以用id来代替HTML元素
FF:不可以

 给数组添加一个方法,去掉数组里面的重复元素

 1、this;   2、prototype; 3、splice

方法一、

 1 var arr = [1 ,1 ,2, 3, 3, 2, 1]; 2 Array.prototype.unique = function(){ 3          var ret = []; 4          var o = {}; 5          var len = this.length; 6          for (var i=0; i<len; i++){ 7                    var v = this[i]; 8                    if (!o[v]){ 9                                 o[v] = 1;10                                 ret.push(v);11                   }12        }13         return ret;14 };15 console.log(arr.unique());

 方法二、

 1      var arr = [1,2,3,2,3,4,5]; 2      console.log(arr); 3     Array.prototype.unique = function() { 4         var obj = {}; 5         for(var i = 0; i < this.length; i++) { 6             if(!obj[this[i]]){ 7                 obj[this[i]] = 1; 8             }else { 9                 this.splice(i,1);10                 i = i-1;11             }12         }13         console.log(this);14         return this;15     }16     arr.unique();17     alert(arr);
View Code

 

 

 

 

http://www.w3cfuns.com/forum.php?mod=viewthread&tid=1955&extra=page%3D1%26filter%3Dtypeid%26typeid%3D177%26typeid%3D177

JS题目