我发现了一个javascript块,但不明白它的作用

时间:2015-12-17 12:32:59

标签: javascript html

我发现了一个javascript但不明白它的作用。这是一个对象还是其他任何功能?

main : {
    //variables declaration
    var ret = "";
    var text = "";
    var tmp = "";
    var CSVString = "";
    var counter = 1;
    var page = 1;
    var header = 'TITLE|JOB_ID|RECRUITER|DESCRIPTION2|TIME';
    //if function 

    if (page === 1 ) {
            break main;
        }
}

拜托,有谁可以向我解释if函数中发生了什么?打破主要?

1 个答案:

答案 0 :(得分:11)

修改:修改后,问题略有不同,因为您添加了labeled break statement。在发布的代码中,仍然是冗余,但如果使用正确,它可以用于打破嵌套循环,如链接的MDN示例中所示:

  

给定一个项目数组和一组测试,此示例确定是否所有项目都通过了所有测试       var allPass = true;       var i,j;

top:
for (i = 0; items.length; i++)
  for (j = 0; j < tests.length; i++)
    if (!tests[j].pass(items[i])){
      allPass = false;
      break top;
    }

原始答案:

虽然完全有效,但这只是一个javascript label statement后跟一个块。 main :将不会做任何事情,并且会像忽略一样行事:

&#13;
&#13;
main : {
    //variables declaration
    var ret = "";
    var text = "";
    var tmp = "";
    var CSVString = "";
    var counter = 1;
    var page = 1;
    var header = 'TITLE|JOB_ID|RECRUITER|DESCRIPTION2|TIME';
}
alert(header);
&#13;
&#13;
&#13;

就像你写这个一样:

{
    //variables declaration
    var ret = "";
    var text = "";
    var tmp = "";
    var CSVString = "";
    var counter = 1;
    var page = 1;
    var header = 'TITLE|JOB_ID|RECRUITER|DESCRIPTION2|TIME';
}
alert(header);

Label语句旨在在循环中使用,但由于Javascript没有 goto 语句,因此在代码的其他位置它是多余的。