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 = 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

原文地址:https://www.cnblogs.com/hemi/p/4015803.html