e.target与e.currentTarget的区别

在DOM事件对象中有两个属性总是时不时的困扰我,就是targetcurrentTarget,有时候很迷惑分不清两者的区别,因此有必要把这两个属性好好梳理一下,加深理解,以便日后的查询。
MDN中对target的解释为,一个触发事件的对象的引用, 当事件处理程序在事件的冒泡或捕获阶段被调用时。
而对于currentTarget,它指的是当事件遍历DOM时,标识事件的当前目标。它总是引用事件处理程序附加到的元素,而不是event.target,它标识事件发生的元素。
举个例子来说明。

查看更多

关于如何学习

焦虑

这是一个信息爆炸的时代,与过去获取的知识方式不同,如今随时随地都可以获取知识,知识呈现碎片化,系统化的学习越来越困难,同时吸收知识的能力变差,似乎总是在学习,然而当你回想所学,随即又变成了一片空白,因此焦炉感倍增。

查看更多

关注点分离

昨天在写popover组件的时候方方老师提出了写页面的两个基本原则。

查看更多

var与let

JavaScript中声明变量通常使用var,ES6中引入了let声明变量,这两者有什么区别呢?

1. 作用域

    查看更多

    事件委托

    在JavaScript中,事件委托Event delegation是一种事件的响应机制,当需要监听不存在的元素或是动态生成的元素时,可以考虑事件委托。

    事件委托得益于事件冒泡(有关事件冒泡可以参考事件冒泡与事件捕获),当监听子元素时,事件冒泡会通过目标元素向上传递到父级,直到document,如果子元素不确定或者动态生成,可以通过监听父元素来取代监听子元素。

    查看更多

    DOM0、DOM1、DOM2级事件

    DOM(Document Object Model,文档对象模型)是针对HTML文档和XML文档的一个API。DOM描绘了一个层次化的节点树,允许开发人员添加、移出和修改页面的某一部分,DOM脱胎于Netscape及微软公司创始的DHTML(动态HTML)。但现在它已经成为表现和操作页面标记的真正跨平台、语言中立的方式。

    查看更多

    事件冒泡与事件捕获

    JavaScript与HTML之间的交互是通过事件来实现的,事件就是当文档或者浏览器窗口发生一些特定的交互瞬间,事件流是指从页面中接收事件的顺序。IE和Netscape开发团队提出,当你点击页面上的按钮时,你也同时点击了按钮的容器元素,甚至也点击了整个页面,但是,对于事件流,这两个团队提出了两个完全相反的事件流概念,IE认为,事件流是冒泡流,而Netscape认为事件流是捕获流。

    查看更多

    浏览器内核简介

    浏览器内核可以说是浏览器的心脏,浏览器内核由两部分组成,渲染引擎——“Rendering Engine”,和JS引擎。渲染引擎主要负责网页的显示方式等,JS引擎主要负责解析JavaScript代码,由于后来JS引擎越来越独立,浏览器内核一般指渲染引擎。在常见的主流浏览器中,各浏览器内核是不同的,主要分为Trident、Gecko、Blink和Webkit。

    查看更多

    关于Date对象

    1. 概念

    Date对象是JavaScript提供的日期和时间的操作接口。它可以表示的时间范围是,1970年1月1日00:00:00前后的各1亿天(单位为毫秒)。
    我们可以通过直接调用Date对象来获取当前时间,获取当前时间的字符串形式

    1
    2
    Date()
    // "Mon Jun 05 2017 17:32:47 GMT+0800 (中国标准时间)"

    查看更多

    markdown语法简介

    最近遇到一个小问题,不论是写博客还是日常写作,总避免不了在内置markdown语法的编辑器中忘记一些语法,这让我产生了“与其每次去搜索看别人的,不如看自己”的想法,于是,我稍微总结了一下,以便将来自己查阅。

    1. 标题

    1
    2
    3
    4
    5
    6
    # 一级标题
    ## 二级标题
    ### 三级标题
    #### 四级标题
    ##### 五级标题
    ###### 六级标题

    查看更多