十年专注于品牌网站建设 十年专注于品牌网站建设,低调、有情怀的网络应用服务商!
南昌百恒网络微信公众号 扫一扫关注
小程序
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络微信小程序

百恒网络

南昌百恒网络

ECMAScript 1ebel语句、break和continue语句、with语句

百恒网络 2012-02-27 1320

1. 1ebel语句

使用label语句可以在代码中添加标签,以便将来使用。以下是label语句的语法:

label: statement

下面是一个示例:

start: for(var i=0; i alert (i);

}

这个例子中定义的start栎签可以在将来由break或continue语句引用。加标签的语句一般都要与for语句等循环语句配合使用。

2. break和continue语句

break和continue语句用于在循环中精确地控制代码的执行。其中,break语句会立即退出循环,强制继续执行循环后面的语句。而continue语句虽然也是立即退出循环,但退出循环后会从循环的顶部继续执行。请看下面的例子:

var num=O;

for (var i=l; i<10; 1++) {

if (i%5==O) {

break;

}

num++;

}

alert (num); //4

这个例子中的for循环会将变量i由1递增至10。在循环体内,有一个if语句检查i的值是否可以被5整除(使用求模操作符)。如果是,则执行break语句退出循环。另一方面,变量num从0开始,用于记录循环执行的次数。在执行break语句之后,要执行的下一行代码是alert()函数,结果显示4。也就是说,在变量i等于5时,循环总共执行了4次;而break语句的执行,导致了循环在num次递增之前就退出了。如果在这里把break替换为continue的话,则可以看到另一种结果:

var num = 0;

for (var i=l; i<10; 1++) {

if (i%5==O) {

continue;

}

num++;

}

alert (num); //8

例子的结果显示8,也就是循环总共执行了8次。当变量i等于5时,循环会在num再次递增之前退出,但接下来执行的是下一次循环,即i的值等于6的循环。于是,循环又继续执行,直到i等于10时自然结束。而mun的最终值之所以是8,是因为continue语句导致它少递增了一次。

break和continue语句都可以与label语句联合使用,从而返回代码中特定的位置。这种联合使用的情况多发生在循环嵌套的情况下,如下面的例子所示:

varriuni=0;

outermost;

for (var i=0;i<10; 1++) {

for (var j=0; j<10; j++) {

if (i==5&&j==5) {

break outermost;

}

num++;

}

}

alert (num); //55

在这个例子中,outermost标签表示外部的for语句。如果每个循环正常执行10次,则num++语句就会正常执行100次。换句话说,如果两个循环都自然结束,num的值应该是100。但内部循环中的break话句带了一个参数:要返回到的标签。添加这个标签的结果将导致break语句不仅会退出内部的for语句(即使用变量j的循环),而且也会退出外部的for语句(即使用变量i的循环)。

为此,南昌网页设计公司前端开发工程师提示,当变量i和j都等于5时,num的值正好是55。同样,continue语句也可以像这样与label语句联用,如下面的例子所示:

varrium=O;

outermost;

for (var i=0; i<10; 1++) {

for (var j=0; j<10; j++) {

if(i==5&&j==5) {

continue outermost;

}

num++;

}

}

alert (num); //95

在这种情况下,continue语句会强制继续执行循环——退出内部循环,执行外部循环。当j是5时,continue语句执行,而这也就意味着内部循环少执行了5次,因此num的结果是95。

虽然联用break、continue和label语句能够执行复杂的操作,但如果使用过度,也会给调试带来麻烦。在此,南昌网络公司百恒网络建议如果使用label语句,一定要使用描述性的标签,同时不要嵌套过多的循环。

3. with语句

with语句的作用是将代码的作用域设置到一个特定的对象中。with语句的语法如下:

with (expression) statement

定义with语句的目的主要是为了简化多次编写同一个对象的工作,如下面的例子所示:

var qs=location.search.substring(l);

var hostName=location.hostname;

var url=location.href;

上面几行代码都包含location对象。如果使用with语句,可以把上面的代码改写成如下所示:

with(location){

var qs=search.substring (1);

var hostName=hostname;

var url=href;

}

在这个重写后的例子中,使用with语句关联了location对象。这意味着在with语句的代码块内部,每个变量首先被认为是一个局部变量,而如果在局部环境中栈不到该变量的定义,就会查询location对象中是否有同名的属性。如果发现了同名属性,则以location对象属性的值作为变量的值。

南昌网站建设公司前前端开发工程师提醒:由于大量使用with语句会导致性能下降,同时也会给调试代码造成困难,因此在开发大型应用程序时,不建议使用with语句.


400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络小程序

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
售后服务 售后服务
 
备案专线 备案专线
 
×