type
status
date
slug
summary
tags
category
icon
password

事件流

事件捕获:
  • 从DOM的根元素开始去执行对应的事件(从外到里)
事件冒泡:
  • 当一个元素的事件被触发时,同样的事件将会在该元素的所有祖先元素中依次触发
  • 事件冒泡默认存在
  • 当一个元素触发事件之后,会依次向上调用所有父级元素的同名事件(比如说click)
阻止冒泡:
  • 因为默认有冒泡的存在,所以容易导致事件影响到父级;如果需要把事件限制在当前元素内就必须要阻止冒泡
  • 事件对象.stopPropagation()
    • 阻断事件流动传播,在冒泡和捕获阶段均有效
解绑事件:
  • 对象.onclick = null
    • 这样就把点击事件跟对象解绑了
  • 对象.removeEventListener(’事件’, 函数)
    • 该对象发生这个事件将不会执行这个函数

事件委托

运用事件流的特性来解决一些开发中的问题
  • 给父元素注册事件,当我们触发子元素的时候,会冒泡到父元素身上,从而触发父元素的事件
  • 给子元素注册事件,当父元素的事件触发时,也可以事件捕获到子元素身上
    • 可以用 事件对象.target.tagName 来获取真正触发事件的元素(比如li标签的这个属性就是大写的LI)

构造函数和this

接口

  • 多个名字一样的接口,实际上myInterface的属性有abc三个
  • 接口可以在定义类的时候限制类的结构
  • 接口只定义对象的结构而不考虑实际值

泛型

  • 这样定义就表示a的类型就是T的类型
  • 不指定泛型,TS可以自动对类型进行推断
    • 调用函数的时候,就可以判断出T的类型是number
    • 这样既不会关掉ts的类型检查,又可以传任意类型的参数
  • 指定泛型类型
  • 规定泛型的类型
    • 表示该泛型必须有length的属性

JS函数

setTimeout()和setInterval()的用法与区别

  • setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数
    • setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式,setTimeout() 只执行一次

      事件对象以及常见属性

      获取事件对象:
      • 事件绑定的回调函数的第一个参数就是事件对象 event
      常见属性:
      • type:当前事件的类型
      • key:用户按下键盘的值

      传统方法和静态方法

      在react里面写传统方法的话必须在JSX中声明:
      写静态方法的话直接调用就可以了,就不需要在JSX中进行声明,使用open直接就能打开一个对话框:
      open这个方法里面处理具体的事务

      JS 的垃圾回收机制

      可达性:
      • 某块内存不可达了就会被回收,js 引擎中有一个叫垃圾回收器的东西在后台执行,监控所有对象的状态,并删除掉那些不可达的对象
      • 如果一个值可以从根通过引用或者引用链进行访问,则认为该值是可达的
        • 此时全局变量 user 引用了对象 { name: “Jonh” }
        • 如果 user 的值被重写:user = null,这个引用就没了,对象不可达,垃圾回收器会认为该对象是垃圾数据并进行回收,然后释放内存
      无法到达的岛屿:
      • 几个对象相互引用,但外部没有对其任意对象的引用,这些对象也可能是不可达的,并被从内存中删除
        • notion image
      • "family" 对象已经不再与根相连,没有了外部对其的引用,所以它变成了一座“孤岛”,并且将被从内存中删除
      内部算法:
      • 垃圾回收的基本算法被称为 “mark-and-sweep”
      • 定期执行“垃圾回收”步骤:
        • 垃圾收集器找到所有的根,并对其进行标记
        • 遍历并标记来自根的所有引用
        • ……如此操作,直到所有可达的(从根部)引用都被访问到,没有被标记到的对象会被删除
      小结:
      • 垃圾回收是自动完成的,我们不能强制执行或是阻止执行
      • 当对象是可达状态时,它一定是存在于内存中的
      • 被引用与可访问(从一个根)不同:一组相互连接的对象可能整体都不可达,正如我们在上面的例子中看到的那样
      Vue开发杂记微信小程序:vue+uniapp
      • Giscus