JavaScript语句
JavaScript循环语句
JavaScript循环语句又称迭代语句。声明一组反复执行的命令,知道满足
条件。循环语句有,for ,while do-while for in
JavaScript循环语句——for
for语句应该是最著名的循环语句了,在许多语言都有他的影子。
基本语法:
for (initialization; expression; post-loop-expression) statement
eg:输出1到9
for(var i =0 ;i<10;i++){
alert(i);
}
定义变量i,初始化为0;执行条件是i<10,当>=10时退出循环,
每循环完一次i+1;
其中变量i也可以在外面定义,i++也可以写成其他的条件,终止条件也可以不写
eg:
var i = 0;
for(i;;){
alert(i);//没有终止条件没有每次循环后的操作,一直输出0
}
上面这个例子也称为死循环,死循环会一直运行下去,会大量消耗机器资源。
eg: var i = 0;
for(i;;i+=2){
alert(i);
}
上面这个例子也是死循环,无限输出,0,2,4,6……
JavaScript循环语句——while
基本语法:while (expression) statement
当满足while后面的表达式才执行statement语句,否则跳过语句。
eg:输出1到9
<script>
var i = 1;
while(i<10){
console.log(i);
i++;
}
</script>
JavaScript循环语句——do-while
基本语法:do {statement} while (expression);
循环执行do代码块里的语句,直到while里的表达式不满足
eg:输出0到9
<script>
var i = 0;
do{
console.log(i)
i++;
}while(i<10);
</script>
JavaScript循环语句——for-in
for-in多用在循环遍历对象
<script>
var oJson = {name:'zdx',age:12,sayHello:function(){console.log('函数')}} ;
for(var i in oJson){
alert(i+':'+oJson[i]);//name:zdx
}
</script>
声明一个json对象oJson,里面有属性name,age,sayHello,获取该对象的属性
和值,用for-in遍历。
JavaScript控制循环:
JavaScript用来控制循环的有break和continue关键字。
break立即退出循环体,不再执行循环下面的代码,
continue跳过本次循环继续执行下次循环。
eg:
<script>
for(var i = 0;i<10;i++){
if(i==5){
console.log('break:'+i);
break;
}
console.log(i);
}
for(var i = 0;i<10;i++){
if(i==5){
continue;
console.log('不执行');
}
console.log(i);
}
</script>
对于第一个循环。循环输出0,1,2,3,4之后4++变成5,进入if判断,i==5
输出break :5 ;然后遇到break关键字,立即退出for循环。
其最终结果为,0,1,2,3,4,break : 5
对于第二个循环。循环输出0,1,2,3,4之后4++变成5,进入if判断,i==5
遇到关键字continue,跳过本次循环,直接进入下次循环。
其最终结果为:0,1,2,3,4,6,7,8,9缺少了5
带标签的break,continue
当我们面对双重循环,break,和continue是指的哪个循环呢?
事实上:默认情况下,break,continue所在哪个循环就作用在那个循环上。
<script>
for(var i = 0;i<3;i++){
for(var j = 0 ;j<3;j++){
if(j==1){
break;//该break作用在内层for语句。
//因为break在内层循环上
}
console.log("j:"+j);
}
if(i=2){
continue;//continue作用在外层for语句。
//因为continue在外层循环上
}
console.log('i:'+i);
}
</script>
但是当我们想要在内层循环break,或continue外层循环怎么办,或者
当遇到更高级的循环,比如多重循环嵌套,如果又遇到了continue,
跳出本次是指跳出哪个循环呢,遇到break是终止哪个循环呢。为了防止模糊
不清的概念,所以有了标签,给循环带上标签,然后break,和continue后面
跟上标签,就知道跳出的是哪个循环了。
再循环前加个标签,标签不固定,可以自定义。一般都用outer,inter。
eg:
<script>
out: for(var i = 0;i<10;i++){
console.log('i:'+i);
inner: for(var k = 0;k<10;k++){
if(k==5){
break out;
}
console.log('k:'+k);
}
}
console.log('.................');
out: for(var i = 0;i<10;i++){
console.log('i:'+i);
inner: for(var k = 0;k<10;k++){
if(k==5){
continue out;
}
console.log('k:'+k);
}
}
</script>
限于文章篇幅原因,这里仅仅介绍冰山一角。由于笔者的水平有限,编写时间也很仓促,
文中难免会出现一些错误或者不准确的地方,不妥之处恳请读者批评指正
JavaScript循环语句
JavaScript循环语句又称迭代语句。声明一组反复执行的命令,知道满足
条件。循环语句有,for ,while do-while for in
JavaScript循环语句——for
for语句应该是最著名的循环语句了,在许多语言都有他的影子。
基本语法:
for (initialization; expression; post-loop-expression) statement
eg:输出1到9
for(var i =0 ;i<10;i++){
alert(i);
}
定义变量i,初始化为0;执行条件是i<10,当>=10时退出循环,
每循环完一次i+1;
其中变量i也可以在外面定义,i++也可以写成其他的条件,终止条件也可以不写
eg:
var i = 0;
for(i;;){
alert(i);//没有终止条件没有每次循环后的操作,一直输出0
}
上面这个例子也称为死循环,死循环会一直运行下去,会大量消耗机器资源。
eg: var i = 0;
for(i;;i+=2){
alert(i);
}
上面这个例子也是死循环,无限输出,0,2,4,6……
JavaScript循环语句——while
基本语法:while (expression) statement
当满足while后面的表达式才执行statement语句,否则跳过语句。
eg:输出1到9
<script>
var i = 1;
while(i<10){
console.log(i);
i++;
}
</script>
JavaScript循环语句——do-while
基本语法:do {statement} while (expression);
循环执行do代码块里的语句,直到while里的表达式不满足
eg:输出0到9
<script>
var i = 0;
do{
console.log(i)
i++;
}while(i<10);
</script>
JavaScript循环语句——for-in
for-in多用在循环遍历对象
<script>
var oJson = {name:'zdx',age:12,sayHello:function(){console.log('函数')}} ;
for(var i in oJson){
alert(i+':'+oJson[i]);//name:zdx
}
</script>
声明一个json对象oJson,里面有属性name,age,sayHello,获取该对象的属性
和值,用for-in遍历。
JavaScript控制循环:
JavaScript用来控制循环的有break和continue关键字。
break立即退出循环体,不再执行循环下面的代码,
continue跳过本次循环继续执行下次循环。
eg:
<script>
for(var i = 0;i<10;i++){
if(i==5){
console.log('break:'+i);
break;
}
console.log(i);
}
for(var i = 0;i<10;i++){
if(i==5){
continue;
console.log('不执行');
}
console.log(i);
}
</script>
对于第一个循环。循环输出0,1,2,3,4之后4++变成5,进入if判断,i==5
输出break :5 ;然后遇到break关键字,立即退出for循环。
其最终结果为,0,1,2,3,4,break : 5
对于第二个循环。循环输出0,1,2,3,4之后4++变成5,进入if判断,i==5
遇到关键字continue,跳过本次循环,直接进入下次循环。
其最终结果为:0,1,2,3,4,6,7,8,9缺少了5
带标签的break,continue
当我们面对双重循环,break,和continue是指的哪个循环呢?
事实上:默认情况下,break,continue所在哪个循环就作用在那个循环上。
<script>
for(var i = 0;i<3;i++){
for(var j = 0 ;j<3;j++){
if(j==1){
break;//该break作用在内层for语句。
//因为break在内层循环上
}
console.log("j:"+j);
}
if(i=2){
continue;//continue作用在外层for语句。
//因为continue在外层循环上
}
console.log('i:'+i);
}
</script>
但是当我们想要在内层循环break,或continue外层循环怎么办,或者
当遇到更高级的循环,比如多重循环嵌套,如果又遇到了continue,
跳出本次是指跳出哪个循环呢,遇到break是终止哪个循环呢。为了防止模糊
不清的概念,所以有了标签,给循环带上标签,然后break,和continue后面
跟上标签,就知道跳出的是哪个循环了。
再循环前加个标签,标签不固定,可以自定义。一般都用outer,inter。
eg:
<script>
out: for(var i = 0;i<10;i++){
console.log('i:'+i);
inner: for(var k = 0;k<10;k++){
if(k==5){
break out;
}
console.log('k:'+k);
}
}
console.log('.................');
out: for(var i = 0;i<10;i++){
console.log('i:'+i);
inner: for(var k = 0;k<10;k++){
if(k==5){
continue out;
}
console.log('k:'+k);
}
}
</script>
内容需要大量练习。多重if,多重循环,break,continue。
限于文章篇幅原因,这里仅仅介绍冰山一角。由于笔者的水平有限,编写时间也很仓促,
文中难免会出现一些错误或者不准确的地方,不妥之处恳请读者批评指正