标签语句
break语句和continue语句都可以与有标签的语句联合使用,并且标签要在break,continue语句之前声明,返回代码中的特定位置。
通常,当循环内部还有循环时,会这样做,例如:
var iNum = 0;
outermost: // 标签声明
for (var i=0; i<10; i++) {
for (var j=0; j<10; j++) {
if (i == 5 && j == 5) {
break outermost;
}
iNum++;
}
}
alert(iNum); // 输出 "55"
这里的break语句有一个参数,即停止循环后要跳转到的语句的标签。这样break语句不止能跳出内部for语句(即使用变量j的语句),还能跳出外部for语句(即使用变量 i 的语句)。因此,iNum最后的值是55,因为当i和j的值都等于5时,循环将终止。
可以以相同的方式使用 continue 语句:
var iNum = 0;
outermost: // 标签声明
for (var i=0; i<10; i++) {
for (var j=0; j<10; j++) {
if (i == 5 && j == 5) {
continue outermost;
}
iNum++;
}
}
alert(iNum); // 输出 "95"
continue语句会迫使循环继续,不止是内部循环,外部循环也如此。当j等于5时出现这种情况,意味着内部循环将减少5次迭代,致使iNum的值为95。
<br />
with语句
with 语句用于设置代码在特定对象中的作用域,在作用域内不再需要显式写出对象。
var sMessage = "hello";
with(sMessage) {
alert(toUpperCase()); //输出 "HELLO"
}
在这个例子中,with语句用于字符串,所以在调用toUpperCase()方法时,解释程序将检查该方法是否是本地函数。如果不是,它将检查伪对象sMessage,看它是否为该对象的方法。
提示:with 语句是运行缓慢的代码块,尤其是在已设置了属性值时。大多数情况下,如果可能,最好避免使用它。
<br />
更多请参考:W3School