美文网首页
「JavaScript」 基础知识要点及常考面试题(四)---

「JavaScript」 基础知识要点及常考面试题(四)---

作者: ybrelax | 来源:发表于2019-08-02 17:35 被阅读0次

    事件的委托

    所谓的事件委托,通过监听一个父元素,来给不同的子元素绑定事件,减少监听次数,从而提升速度。
    eg:

    <body>
        <ul id="isUl">
            <li id="li01">1</li>
            <li id="li02">2</li>
            <li id="li03">3</li>
        </ul>
        <script>
            function clickLi01() {
                alert('你点击了第1个li');
            }
            function clickLi02() {
                alert('你点击了第2个li');
            }
            function clickLi03() {
                alert('你点击了第3个li');
            }
            document.getElementById('isUl').addEventListener('click', function(event) {
                var srcID = event.target.id;
                if(srcID == 'li01'){
                    clickLi01();
                }else if(srcID == 'li02') {
                    clickLi02();
                }else if(srcID == 'li03') {
                    clickLi03();
                }
            });
        </script>
    </body>
    

    new 做了什么操作

    1. 创建一个新对象,同时继承对象类的原型,即xxx.prototype
    2. 执行类的构造函数,同时将改实例上的属性和方法被this引用,即this指向新的构造函数
    3. 如果构造函数放回一个新对象,那么这个对象就会取代new出来的结果。如果构造函数没有return对象,即返回隐式的this

    for of , for...in.. 的区别

    https://www.jianshu.com/p/c43f418d6bf0

    事件冒泡和事件捕获有什么区别

    事件捕获:当触发子元素身上的事件,会先触发父元素,然后在传递给子元素
    事件冒泡:当给父子元素的同一事件绑定方法时,触发子元素身上的事件,执行完毕之后,也会触发父级元素相同的事件。

    事件委托

    通过父节点事件来传播到子节点(事件捕获)
    问:怎么判断你点了是第几个子节点

    <!DOCTYPE html>
    <html>
      <body>
        <ul>
          <li>1</li>
          <li>2</li>
          <li>3</li>
        </ul>
      </body>
    
      <script>
        window.onload = function() {
          let $ul = document.getElementsByTagName('ul')[0];
          let $lis = document.getElementsByTagName('li')
          $ul.addEventListener('click', function(e) {
            let target = e.target
            for(let i = 0; i< $lis.length; i++) {
                if (target === $lis[i]) {
                    console.log('你点击了第', i + 1 , '个')
                }
            }
          });
        };
      </script>
    </html>
    
    

    移动端 click和touch事件的区别

    移动端的touch click事件的理解

    相关文章

      网友评论

          本文标题:「JavaScript」 基础知识要点及常考面试题(四)---

          本文链接:https://www.haomeiwen.com/subject/levvrctx.html