# 2019年03月刊

# 2019/03/27 - 2019/03/31 ⌚️


  • 请问这句语句 var args=[].slice.call(arguments,1) 是什么意思?

    点击

    先看原函数:

    function a() {
      var args = [].slice.call(arguments, 1);
      console.log(args);
    }
    
    a('haha', 1, 2, 3, 4, 5); // log出[1, 2, 3, 4, 5]
    a('run', '-g', '-b'); // log出['-g', '-b']
    
    1
    2
    3
    4
    5
    6
    7
    1. 首先,函数 call() 方法,第一个参数改变函数的 this 指向,后面剩余参数传入原函数 slice 中
    2. arguments 是什么?

      arguments 是函数中的一个类数组的参数集合对象 如: {'0': 'haha', '1': 1, '2': 2}

    3. slice 为数组可从已有的数组中返回选定的元素。

      此题为从 index = 1 往后

    4. 综上,这句语句的作用是——将函数中的实参值转化成数组
  • 连等赋值问题 (opens new window)

    var a = { n: 1 };
    var b = a;
    a.x = a = { n: 2 };
    // a ? b ? a.x ? 结果是什么?
    
    1
    2
    3
    4
  • 如何手动实现一个 Promise ? (opens new window)

  • AST(抽象语法树)? (opens new window)