javascript中冒号的使用

Uses of colon in javascript

本文关键字:javascript      更新时间:2023-09-26
  1. 分配对象文字属性var foo = { bar : 'hello'};
  2. 三元var cats = happy ? "yes" : "no";
  3. 将语句标记为outer_loop: for(i=0; i<3; i++)
  4. 还有什么

我正在浏览一个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:共识似乎是,冒号的sharepoint使用"不是实际的javascript,可能被用作某种外部目的的标记"。浏览器将其视为残留标签,因此不会导致任何错误。感谢所有的回复,我在顶部留下了实际用途,以便问题包含适当的答案。关于同一代码的问题

它在javascript方面没有任何用途(因为在javascript中,您只能标记一些可以继续或中断的内容),它可能被用作某些解析脚本的某种注释或标记。最坏的情况是,它只是没有任何目的的死代码。

编辑:看起来sharepoint使用它来获取一些诊断信息:这个Javascript代码是做什么的?

这些是标签。通常,它们用于一次分解出几个嵌套循环。

示例

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

来源:这个答案。

它是一个空标签,然后是一个空白语句。(我看不出有什么好的理由-除非函数后面有什么东西没有包含在这里,否则需要标签来打破该函数中的循环。)

第三种用法是将语句标记为与breakcontinue语句一起使用。参见规范