240 发简信
IP属地:北京
  • function test(foo){
    var foo;
    function foo(){console.log(111)}
    console.log(foo)
    }

    test(4) // function foo(){console.log(111)}

    ****************************
    function test(foo=7){
    var foo;
    function foo(){console.log(111)}
    console.log(foo)
    }

    test(4) //4

    ************************

    第一个demo,波同学可不可以解释一下这种情况吗? 按照波同学的意思,参数arguments在创建阶段应该是优先级最高的,那么执行test(4)时, foo被赋值为“4”的这一步是在Context的执行阶段进行,还是在创建阶段进行呢?如果是在执行阶段,那这个算是赋值操作吧,理应会覆盖原本函数foo的声明吧?

    第二个demo更疑惑,如果用了ES6的默认值,最终的输出值就只会是4

    前端基础进阶(三):变量对象详解

    变量对象,在新版本中,准确的说法应该是环境记录对象,而环境记录对象,又区分词法环境对象与变量环境对象,词法环境对象用于解析当前上下文中,由 const 声明的标识符引用,变量...

  • 120
    用youtube,学英语——呕心沥血码教程

    1.English with Lucy 博主lucy是英国人-Bedfordshire,除了british english外,你同样可以在channel看到她展示的spani...