• 有铭
    2019-03-02
    很感兴趣这些高级特性的知识老师是从哪里学到的,我翻过js高级编程那本书都没讲到过这些
     1
     66
  • Rushan-Chen
    2019-03-02
    请问老师,表格中的“穿透”和“消费”是什么意思?
     3
     52
  • AICC
    2019-03-02
    3楼你好,我的理解是,消费指对应的代码被有效的执行了,穿透指对应代码被跳过了,也就是对应控制的语句体被有效执行比如try catch,当try中出现了throw,能被有效捕获进而执行catch,这在我理解就是try被消费执行了,而当catch中还有throw时,由于catch不具备处理throw的能力,于是catch被中断跳出,也就是作者所说的穿透,希望能帮到你
    
     34
  • 周小成
    2019-03-12
    穿透和消费,报错应该是连贯的,“穿透”就是指不在当前这一层处理,向外逐层寻找可以“消费”的那一层,直到最后都没找到就报错,比如:function里面有while, while里面有switch, switch里面又有continue,按图表来看,switch-continue应该是穿透,向上层寻找消费,碰到while-contine,那就是消费,再如switch里面是return, switch-return穿透,向上层whlie-return穿透,最后function-return是消费。
     1
     33
  • 加利率的钟摆
    2019-04-17
    ```javascript
    function test(){
      if(true){
        console.log("111");
        break;
      }
      if(true){
        console.log("222");
      }
    }

    test(); // SyntaxError: Illegal break statement
    ```

    我们可以这么分析:

    1. if 和 break 相遇,break 穿透至 function
    2. function 和 break 相遇,报错

    ```javascript
    function test() {
      var a = 0;
      switch (a) {
        case 0:
          if (true) {
            console.log("111");
            break;
          }
      }

      if (true) {
        console.log("222");
      }
    }

    test();
    // 111
    // 222
    ```

    我们可以这么分析:

    1. if 和 break 相遇,break 穿透至 switch
    2. swicth 和 break 相遇,消费掉 break
    3. 接着执行之后的代码
    展开
     3
     12
  • Dream.
    2019-03-03
    第一次看见『消费』与『穿透』这样的描述。

    这两个词的来源自哪里呢?

    结合表格中的控制语句组合使用得到的结果来看,我的理解是

    『消费』是控制语句里的内容执行完毕。
    『穿透』是控制语句里的内容没能执行完,被中止了。
    展开
    
     8
  • 火云邪神0007
    2019-03-04
    老师在前面讲过,穿透就是去上一层的作用域或者控制语句找可以消费break,continue的执行环境,消费就是在这一层就执行了这个break或者continue
    
     7
  • 夜空中最亮的星(华仔...
    2019-03-02
    老师,我昨天成功的把您的课推销出去了一份,哈哈😄高兴
    
     6
  • K4SHIFZ
    2019-03-29
    老师,请出一份ES标准解读。带着我们学一次。必买!
    
     3
  • csᵏᵒᵖ
    2019-10-26
    winter老师,特殊处理就是指后面的 “因为 finally 中的内容必须保证执行,所以 try/catch 执行完毕,即使得到的结果是非 normal 型的完成记录,也必须要执行 finally“ 吗

    作者回复: 没错,就是这个。

    
     2
  • 小say
    2019-09-17
    老师你好,前面说[[value]]如果没有返回值就是empty但是为什么在Chrome调试器下显示的是undefined?
    后文中语句块中
    {
      var i = 1; // normal, empty, empty
      i ++; // normal, 1, empty
      console.log(i) //normal, undefined, empty
    } // normal, undefined, empty
    其中 var i = 1; 为什么[[value]]会是empty?console.log(i)的[[value]]为什么是undefined?所以到底什么时候是empty什么时候是undefined?
    展开

    作者回复: 是Chrome自己的规定。

    
     2
  • Ed
    2019-05-29
    标准 https://tc39.github.io/ecma262/
    
     2
  • 靠人品去赢
    2019-03-20
    这个把completion称作一个类型,感觉有点怪,首先这个不是我们自己去定义的,这个是因为我们执行语句都会有这个东西。小白看到这个“类型”会往前找,发现没这个类型,之前掌握的的语言系统也没有相关的类型,结果就是“我擦,这是啥,ES6的新特性吗?”。关于这个,这是我在MDN上找的相关资料,希望大家指点一下(看run-to-completion这部分)https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop
    
     2
  • BrigandShi
    2019-03-04
    Completion 类型是个神马鬼?
    
     2
  • Smallfly
    2019-10-17
    winter 老师,有什么工具能查看 JS 引擎的运行时的特殊类型么?

    作者回复: 不能,事实上引擎不一定需要按照标准的模型来实现,只要保证运行效果等效即可。

    
     1
  • 明月
    2019-08-15
    我理解的穿透或者消费是break continue return thow对if等的影响范围 如果能影响到if层级之外就是穿透 如果是只影响if语句就是消费
    
     1
  • Puru
    2019-06-25
    Python 也是先执行finally后执行return

    作者回复: 所有有这个的语言都是这个行为。

    
     1
  • Jacky
    2019-04-16
    try finally 那个跟Java不是一样的吗
     1
     1
  • 守候
    2019-03-14
    学到了
    
     1
  • 阿成
    2019-03-02
    涨姿势啦
    不过,从来没用过label...
    甚至第一次知道js里没有goto...
    
     1
我们在线,来聊聊吧