- 
                
                TypeScript知识点访问修饰符有哪些?public:公共的。类的所有成员,其子类以及该类的实例都可以访问; protected: 受保护的。该类及其子类的所有成员都可以访问它们。 但是该类的==实例无法访问==。 priva...
- 
                
                TypeScript进阶类型别名类型别名用来给一个类型起个新名字。 12345678910type Name = string;type NameResolver = () => string;type NameOrResolver = Name | NameRe...
- 
                
                TypeScript基础一、原始类型:avaScript 的类型分为两种:原始数据类型(Primitive data types)和对象类型(Object types)。 原始数据类型包括:布尔值、数值、字符串、null、undefined 以及 ES6 中的新类型 S...
- 
                
                重写与this有关的方法和关键字call/apply/bind/typeof/new/instanceof 的实现1.call/apply/bind方法的调用:12345678// callfn.call(...
- 
                
                数组方法重写forEach12345678Array.prototype.myEach = function (fn) { var arr = this; var obj = arguments[1] || window; for (let...
- 
                
                路由原理路由原理hash路由(核心api:hashchange事件)利用a标签,并阻止默认事件。通过hashchange事件监听hash值的变化,替换掉目标区域的html内容 123456789<h1>hash 路由</h1>&l...
- 
                
                函数柯里化实现add(1)(2)(3) ==6 && add(1, 2, 3) == 6利用 toString() 或 valueOf() 123456789101112131415161718f...
- 
                
                函数防抖和节流函数防抖 节流或是防抖:限制函数的执行次数 概念节流(throttle):减少一段时间的触发频率 防抖(debounce):通过setTimeout 的方式,在一定的时间间隔内,将多次触发变成一次触发 应用场景节流:滚动加载更多、搜索框搜的索联...
- 
                
                对象拷贝浅拷贝1.es3写法123456let originObj = {};let cloneObj = {};for(const key in originObj) { cloneObj[key] ...
- 
                
                垃圾回收机制项目中,如果存在大量不被释放的内存(堆/栈/上下文),页面性能会变得很慢。当某些代码操作不能被合理释放,就会造成内存泄漏。我们尽可能减少使用闭包,因为它会消耗内存。 浏览器垃圾回收机制/内存回收机制: 浏览...
        $tools-item-width = 2.2rem
$tools-item-font-size = 1.1rem
$tools-item-border-radius = 0.1rem
.side-tools-container {
  position relative
  .tools-item {
    width $tools-item-width
    height $tools-item-width
    margin-bottom 0.2rem
    color var(--text-color-3)
    font-size $tools-item-font-size
    background var(--background-color-1)
    border-right none
    border-radius $tools-item-border-radius
    box-shadow 0.1rem 0.1rem 0.2rem var(--shadow-color)
    cursor pointer
    i {
      color var(--text-color-3)
    }
    &:hover {
      color var(--background-color-1)
      background var(--primary-color)
      box-shadow 0.2rem 0.2rem 0.4rem var(--shadow-color)
      i {
        color var(--background-color-1)
      }
    }
    +keep-tablet() {
      width $tools-item-width * 0.9
      height $tools-item-width * 0.9
      margin-bottom 0.2rem
      font-size $tools-item-font-size * 0.9
    }
    &.rss {
      a {
        width 100%
        height 100%
        border-radius $tools-item-border-radius
        &:hover {
          color var(--background-color-1)
          background var(--primary-color)
          box-shadow 0.2rem 0.2rem 0.4rem var(--shadow-color)
        }
      }
    }
  }
  .side-tools-list {
    transform translateX(100%)
    opacity 0
    transition-t("transform, opacity", "0, 0", "0.2, 0.2", "linear, linear")
    &.show {
      transform translateX(0)
      opacity 1
    }
  }
  .exposed-tools-list {
    if (hexo-config('style.scroll.percent') == true) {
      .tool-scroll-to-top {
        display none
        &.show {
          display flex
        }
        &:hover {
          .percent {
            display none
          }
          .arrow-up {
            display flex
          }
        }
        .arrow-up {
          display none
        }
        .percent {
          display flex
          font-size 1rem
        }
      }
    }
  }
}
    
    