• 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

  • 相关阅读:
    2-SAT 问题及图论解法
    割点、强连通分量
    欧拉路、欧拉回路
    DFS 树
    【题解】[AGC 034 F] RNG and XOR【异或卷积 FWT】
    【题解】[UOJ 62] UR #5 怎样跑得更快【莫比乌斯反演】
    【题解】LOJ #2085 / 洛谷 P1587「NOI2016」循环之美【莫比乌斯反演】
    【题解】LOJ #6052 「雅礼集训 2017 Day11」DIV【莫比乌斯反演】
    【题解】[HDU 5382] GCD?LCM【莫比乌斯反演 差分 线性筛】
    【题解】[51Nod 1847] 奇怪的数学题【min_25筛 杜教筛 莫比乌斯反演】
  • 原文地址:https://www.cnblogs.com/hemi/p/4015803.html
Copyright © 2020-2023  润新知