JavaScript基础——实现循环
循环是多次执行同一段代码的一种手段。当你需要在一个数组或对象集上重复执行相同的任务时,这是非常有用的。
JavaScript提供执行for和while循环的功能。
1、while循环
JavaScript中最基本的循环类型是while循环。while循环测试表达式,并继续执行包含在它的{}括号中的代码,直到表达式计算结果为false为止。
例如,下面的while循环一直执行,直到i等于5为止:
var i = 1;
while (i<5){
console.log("Iteration" + i);
i++;
}
本示例将下面的输出发送到控制台:
Iteration 1
Iteration 2
Iteration 3
Iteration 4
2、do/while循环
另一种类型的while循环是do/while循环。如果你总是想至少执行一次循环中的代码,并且除非代码至少执行一次,否则不能对表达式进行测试时,这是很有用的。
例如,下面的do/while循环一直执行,知道days等于wednesday为止:
var days = ["monday","tuesday","wednesday","thursday","friday"];
var i=0;
do{
var day=days[i++];
console.log("it's " + day)
}while (day != "wednesday");
这是在控制台的输出:
it's monday
it's tuesday
it's wednesday
3、for循环
JavaScript的for循环允许你使用一个把3个语句结合成一个执行块的for语句,将代码执行特定的次数。它的语法如下:
for(赋值;条件;更新){
要执行的代码;
}
for语句使用如下所示的3个语句来执行循环。
赋值:这是在循环开始前执行的,并且不再次执行。它被用来初始化将在循环的条件语句中使用的变量。
条件:在循环的每次迭代之前计算该表达式的值。如果表达式的值为true,则循环继续执行;否则,for循环执行结束。
更新:在每次迭代中,更新在执行了循环中的代码后执行。这通常用于递增在条件中使用的计数器。
下面的例子说明了一个for循环,其中一个循环嵌套在另一个循环内:
for (var x=1;x<=3;x++){
for (var y=1;y<=3;y++){
console.log(x+"x"+y+"="+(x*y));
}
}
输出到Web控制台的结果是:
1x1=1
1x2=2
1x3=3
2x1=2
2x2=4
2x3=6
3x1=3
3x2=6
3x3=9
4、for/in循环
另一种类型的for循环是for/in循环。for/in循环在能够被迭代的任何数据类型上执行。在大多数情况下,你将在数组和对象中使用for/in循环。下面的例子说明了一个简单的数组上的for/in循环的语法和行为:
var days = ["monday","tuesday","wednesday","thursday","friday"];
for (var idx in days){
console.log("it's" + + days[idx] + "<br>");
}
注意,每次迭代循环时,变量idx都被调节,从开始的数组索引带最后的索引。输出结果为:
it's monday
it's tuesday
it's wednesday
it's thursday
it's friday
5、中断循环
当你使用循环时,有时候你需要在代码本身的内部中断代码的执行,而无须等待下一次迭代。有两种不同的方法来做到这一点:使用break和continue关键字。
关键字break完全停止执行一个for或while循环。在另一方面,continue关键字停止执行循环内的代码,并继续进行下一个迭代。考虑下面的几个例子。
这个例子显示了break的使用,如果这一天是星期三(wednesday):
var days = ["monday","tuesday","wednesday","thursday","friday"];
for (var idx in days){
if (days[idx] == "wednesday")
break;
console.log("it's" + days[idx] + "<br>");
}
一旦该值是星期三,循环执行就完全停止:
it's monday
it's tuesday
这个例子显示了continue的使用,如果这一天是星期三:
var days = ["monday","tuesday","wednesday","thursday","friday"];
for (var idx in days){
if(days[idx] == "wednesday")
continue;
console.log("it's" + days[idx] + "<br>");
}
请注意,因为是continue语句,对于星期三,不执行写操作(continue.log()),但此循环的执行是完整的:
it's monday
it's tuesday
it's thursday
it's friday
JavaScript基础——实现循环的更多相关文章
- JavaScript 基础数组循环和迭代的几种方法
JavaScript 数组循环和迭代 (之前一直没怎么注意数组循环,今天做一道题时,用到forEach循环发现它并没有按照我想象的样子执行,总结一下数组循环) 一.第一种方法就是for()循环 ...
- JavaScript 基础(四) 循环
JavaScript的循环有两种,一种是for 循环,通过初始条件,结束条件和递增条件来循环执行语句块: var x = 0; var i; for(i=1; i <=10000; i++){ ...
- javascript基础之循环
//while循环 <script type="text/javascript"> i = 1; while (i <= 6) { document.write( ...
- javascript基础系列(入门前须知)
-----------------------小历史---------------------------- javascript与java是两种语言,他们的创作公司不同,JavaScript当时是借 ...
- 前端(十二)—— JavaScript基础操作:if语句、for循环、while循环、for...in、for...of、异常处理、函数、事件、JS选择器、JS操作页面样式
JavaScript基础操作 一.分支结构 1.if语句 if 基础语法 if (条件表达式) { 代码块; } // 当条件表达式结果为true,会执行代码块:反之不执行 // 条件表达式可以为普通 ...
- javascript基础入门之js中的结构分支与循环语句
javascript基础入门之js中的结构分支与循环语句 程序的结构①顺序结构:自上而下:②选择(分支)结构:多条路径,根据不同的条件,只执行其中一个:③循环结构:重复某些代码④配合特定的语句实现选择 ...
- JavaScript基础
JavaScript基础 JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处 ...
- 前端之JavaScript基础
前端之JavaScript基础 本节内容 JS概述 JS基础语法 JS循环控制 ECMA对象 BOM对象 DOM对象 1. JS概述 1.1. javascript历史 1992年Nombas开发出C ...
- 一步步学习javascript基础篇(3):Object、Function等引用类型
我们在<一步步学习javascript基础篇(1):基本概念>中简单的介绍了五种基本数据类型Undefined.Null.Boolean.Number和String.今天我们主要介绍下复杂 ...
随机推荐
- ActionBar使用
在Android3.0之后,Google对UI导航设计上进行了一系列的改革,其中有一个非常好用的新功能就是引入的ActionBar,他用于取代3.0之前的标题栏,并提供更为丰富的导航效果. 一.添加A ...
- HDU HDU1558 Segment set(并查集+判断线段相交)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1558 解题报告:首先如果两条线段有交点的话,这两条线段在一个集合内,如果a跟b在一个集合内,b跟c在一 ...
- C#高级编程笔记 Day 2, 2016年8月 31日 构造函数
1.构造函数: 实例构造函数(只要创建了对象,就会执行)一般使用 this 关键字区分成员字段和同名的参数.可以把构造函数定义为private 或 protected .这样不相关的类也不能访问他们. ...
- 跟着百度学PHP[4]OOP面对对象编程-6-构造方法(__construct)和构析方法(__destruct)
函数就是成员方法(方法有三:构造方法.成员方法.析构方法) 下面是两种方法. 构造方法和构析方法 00x1 构造方法 构造方法会在创建对象之后自动调用.其名称为__construct <?php ...
- 51Nod 1380 夹克老爷的逢三抽一
Description 一开始有一个环,可以选择删除一个元素获得他的权值,同时删除与它相邻的两个元素,其他元素重新形成环,问能获得的最大价值. Sol 堆+贪心. 一开始从堆中加入所有元素,然后取出一 ...
- BZOJ 2084: [Poi2010]Antisymmetry
Sol Manacher. \(O(n)\) Manacher很简单啊.改一改转移就可以了. 然后我WA了.一开始天真的认为id只会是奇数,然后就GG. 一组 Hack 数据 3 1 0 0 然后就跳 ...
- centos 6.5 git 服务器的配置(入门级)
参考:https://www.digitalocean.com/community/tutorials/how-to-set-up-a-private-git-server-on-a-vps http ...
- 有向图寻找(一个)奇环 -- find an oddcycle in directed graph
/// the original blog is http://www.cnblogs.com/tmzbot/p/5579020.html , automatic crawling without l ...
- 应用HTK搭建语音拨号系统4: 识别器评估
选自:http://maotong.blog.hexun.com/6261890_d.html 苏统华 哈尔滨工业大学人工智能研究室 2006年10月30日 声明:版权所有,转载请注明作者和来源 该系 ...
- ubuntu安装文件比较工具Meld
Meld是一款可视化的文件及目录对比(diff) / 合并 (merge) 工具,通过它你可以对两个或三个文件/目录进行对比,并以图形化的方式显示出它们的不同之处,同时还提供编辑及合并功能,另外还支持 ...