在javascript中使用冒号

时间:2012-01-20 19:15:31

标签: javascript sharepoint

  1. 分配对象文字属性var foo = { bar : 'hello'};
  2. 三元var cats = happy ? "yes" : "no";
  3. 标记声明outer_loop: for(i=0; i<3; i++)
  4. 还有什么?
  5. 我正在浏览一个sharepoint 2010文件,并且我一直在使用这种语法

    someFunction: ;
    

    例如,有一个文件,其中在顶部附近声明了以下函数:

    function ULSqvN() {
        var o = new Object;
        o.ULSTeamName = "SharePoint Portal Server";
        o.ULSFileName = "SocialData.js";
        return o;
    }
    

    然后在文件中我们找到以下

    PageUrlNormalizer = function () {
        ULSqvN: ; //<---------------- This guy here --------------------------
        try {
            this._url = _normalizedPageUrlForSocialItem
        } catch (a) {
            this._url = ""
        }
    };
    

    这是做什么的?

    带有完整档案的

    jsFiddle。同样的ULSqvN: ;在文件中出现了47次。

    编辑:添加完整代码。

    PS:共识似乎是冒号的共享点使用“不是实际的javascript,可能用作某些外部目的的标记”。浏览器将其视为残留标签,因此不会导致错误。感谢所有回复,我已将实际使用留在顶部,以便问题包含适当的答案。 question about same code

4 个答案:

答案 0 :(得分:8)

javascript没有任何意义(因为在javascript中你会标记你可以continue or break的东西),它可能被用作某种评论或标记解析脚本。在最坏的情况下,这只是死代码而没有任何目的。

编辑:看起来像sharepoint将其用于某些诊断信息:What does this Javascript code do?

答案 1 :(得分:3)

这些是标签。通常它们一次用于打破几个嵌套循环。

实施例

function foo ()
{
    dance:
    for(var k = 0; k < 4; k++){
        for(var m = 0; m < 4; m++){
            if(m == 2){
                break dance;
            }
        }
    }
}

信用:this answer

答案 2 :(得分:2)

它是空标签,然后是空语句。 (我看不出有什么好的理由 - 除非函数中的某些内容未包含在此处,否则需要标签突破该函数中的循环。)

答案 3 :(得分:1)

第三种用法是标记一个语句,以便与breakcontinue语句一起使用。请参阅spec.