【问题标题】:Unrecognized Notation in JSJS中无法识别的符号
【发布时间】:2014-02-28 10:54:48
【问题描述】:

我一直在阅读一本关于用 Javascript 编写单页应用程序的书,我浏览了这段代码:

//begin merge changes into anchor map
        KEYVAL:
        for(key_name in arg_map){
            if(arg_map.hasOwnProperty(key_name)){
                //skip dependent keys during iteration
                if(key_name.indexOf('_') === 0){
                    continue KEYVAL;
                }

                //update independent key valie
                anchor_map_revise[key_name] = arg_map[key_name];

                //update matching dependent key
                key_name_dep = '_' + key_name;
                if(arg_map[key_name_dep]){
                    anchor_map_revise[key_name_dep] = arg_map[key_name_dep];
                }
                else{
                    delete anchor_map_revise[key_name_dep];
                    delete anchor_map_revise['_s' + key_name_dep];
                }
            }
        }

问题是我不知道 'KEYVAL:' 是做什么的。有人可以解释一下并可能将我引用到该特定符号的一些文档吗?谢谢。

【问题讨论】:

标签: javascript jquery notation


【解决方案1】:

KEYVAL: 这里是一个标签。这是执行在continue KEYVAL; 语句处跳转的地方。

the MDN on continue

continue 语句可以包含一个可选标签,该标签允许 程序跳转到标记循环语句的下一次迭代 而不是当前循环。在这种情况下, continue 语句 需要嵌套在这个带标签的语句中。

这主要用于处理嵌套循环,因为它允许您选择要跳转到的循环级别。在您的代码中,它看起来没什么用,您可以删除标签并保留一个简单的continue 语句。

【讨论】:

  • 谢谢。它确实看起来毫无用处。现在我想知道他们为什么要使用它。只是重申一下,尽管这仅用于跳转到标记的嵌套循环?它对我的代码中其父 if 语句的执行没有影响,对吧?
  • 是的。事实上它很少使用,尤其是在函数调用非常高效并且我们有数组迭代工具的javascript中。
猜你喜欢
  • 2016-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-13
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 2014-04-03
相关资源
最近更新 更多