美文网首页
JS 一句话系列

JS 一句话系列

作者: 风之化身呀 | 来源:发表于2018-10-14 10:10 被阅读53次

    初衷

    JS细节知识点比较多,容易忘记。所以有这个系列,一句话概括知识点,方便回忆。

    记录

    • Decorator常见用法
      修饰类时,传入类名,可改变静态属性及实例属性,无须返回值;
      修饰方法时,传入原型、属性名及该属性的描述符,利用重写value方法可以做很多事情,需返回修改过后的属性描述符。
      此外装饰器发生在编译阶段而不是运行阶段。而且当有多个Decorator时,按照书写顺序反向执行
    • 节流和去抖的区别
      节流保证m秒内触发一次;去抖强调两次触发的间隔。
      场景:滚动加载更多时,用去抖就可以在停止滑动后才处理相关逻辑。还有输入框实时搜索,用去抖可以在停止输入后才处理逻辑。图片懒加载时,不希望停止滑动时才加载图片,可以用节流
    • ES6 A extends B,则A会继承B的所有属性和方法(实例、原型、静态)
    class A {
    }
    
    class B extends A {
    }
    
    B.__proto__ === A // true
    B.prototype.__proto__ === A.prototype // true
    
    • assign extend merge 的区别
      assign 忽略原型、同名属性覆盖
      extend 包含原型
      merge 同名属性不覆盖,而是合并
    • escape encodeURI encodeURIComponent
      编码的目的是为了传输非ASCII码,比如在url里传输汉字
    • for..of 与 for..in区别
      for..of取得是属性值,for..in 取得是属性,Symbol.iterator本质上是调用for..of
    • compose
      compose(a,b)=(...args)=>a(b(...args))
    • instanceOf 运算符的真实含义:
    function instance_of(L, R) {//L 表示左表达式,R 表示右表达式
     var O = R.prototype;// 取 R 的显示原型
     L = L.__proto__;// 取 L 的隐式原型
     while (true) { 
       if (L === null) 
         return false; 
       if (O === L)// 这里重点:当 O 严格等于 L 时,返回 true 
         return true; 
       L = L.__proto__; 
     } 
    }
    

    即从左边表达式一直取proto与右边表达式的prototype比较

    相关文章

      网友评论

          本文标题:JS 一句话系列

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