JavaScript与C++等其他语言的不同之处——控制语句

本文详细介绍了JavaScript中的循环语句,包括for/in循环的独特用法,以及如何利用标签语句配合break和continue实现复杂逻辑跳转。通过具体示例,展示了在二维数组处理中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JS中条件语句if-else、switch和循环语句while、do-while、for和C等其他编程语言相同,但是JS中循环语句多了一个for/in,它和常规的for循环完全不同,其语法如下:
for(variable in object)
statement
variable通常是一个变量名,也可以是一个可以产生左值的表达式或者一个通过var语句声明的变量,总之必须是一个适用于赋值表达式左侧的值。object是一个表达式,其计算结果是一个对象。statement是一个语句块,构成循环体。for/in循环适合遍历对象属性成员(它并不会遍历对象的所有属性,只有“可枚举”的属性才会遍历到,多数JS除了所有非继承的“自有”属性以外的继承属性都往往是可枚举的,而且按照它们定义的顺序进行枚举)。

JS中跳转语句break、continue和C等其他编程语言中的略有不同。在介绍其不同之前,先介绍标签语句。标签是由语句前的标识符和冒号组成:
identifier:statement
通过给语句定义标签,可以在程序的任何地方通过标签名引用这条语句。break和continue是JS中唯一可以使用语句标签的语句。一个语句标签不能和它内部的语句标签重名,但在两个代码段不相互嵌套的情况下是可以出现同名的语句标签的。任何语句可以有多个标签。

JS中允许break关键字后面跟随一个语句标签(只有标识符,没有冒号):
break labelname;
当break和标签一块使用时,程序将跳转到这个标签所标识的语句块的结束,或者直接终止这个闭合语句块的执行。当你希望通过break来跳出非就近的循环体或switch语句时,就会用到带标签的break语句,如下:
var matrix = GetTwoDimensionalArray();// 得到一个二维数组
var sum = 0, success = false;
compute_sum:if(matrix){
for(var x = 0; x < matrix.length; ++x){
var row = matrix[x];
if(!row){
break compute_sum;
}
for(var y = 0; y < row.length; ++y){
if(isNaN(row[y]){
break compute_sum;
}
sum += row[y];
}
}
success = true;
}
/* break语句跳转至此,如果在success == false的条件下到达这里,
说明二维数组中有错误,否则将数组中的元素进行求和
*/
注意,对于一条带标签的函数定义来说,不能从函数内部通过这个标签来跳转到函数外部。和break语句类似,带标签的continue语句可以用在嵌套的循环中,用以跳出多层次嵌套的循环体逻辑。C语言中goto语句也可以终止程序在某些深度嵌套的结构中的处理过程,但是和break标签语句还是有些区别的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值