博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript基础之四——选择与循环结构
阅读量:7091 次
发布时间:2019-06-28

本文共 1867 字,大约阅读时间需要 6 分钟。

hot3.png

JavaScript基础之四——选择与循环结构

    选择结构与循环结构是编程中处理逻辑的核心结构,JavaScript中支持if-else和switch-case选择结构,支持for,for-in,do-while,while循环结构。并且可以使用break与continue语句进行循环的跳出,简单的条件选择if语句示例如下:

//if条件语句if (true) {	console.log("条件语句");};if (false) {} else {	console.log("if-else语句");};var a = 10;if (a < 10) {	console.log("a<10");} else if (a == 10) {	console.log("a=10");} else {	console.log("a>10");};

switch-case选择结构用于多分支条件的选择,示例如下:

//选择语句var b = "hi";switch (b) {	case "hello":		{			console.log("Hello world");		}		break;	case "hi":		{			console.log("Hi world");		}		break;	default:		{			console.log("都没匹配上");		}}

需要注意,每个case结构后面原则上都需要使用break进行中断匹配,如果不添加此break,则匹配到一个case语句后switch结构并不会结束,会继续尝试匹配后面的case条件。

    for循环结构用于处理大量重复的逻辑,示例如下:

for (var i = 0; i < 10; i++) {	console.log("循环" + i);}for (var i = 0; i < 10; i++) {	console.log("循环" + i);	if (i == 2) {        //使用break可以提前中断循环		break;	};}

JavaScript还有一种更高效的循环模式,for-in结构,这种结构专门用来遍历对象,其可以将对象的属性遍历出来,示例如下:

var obj1 = {	name: "jaki",	age: 25};var obj2 = [1, 2, 3, 4, 5, 6, 7, 8];for (var x in obj1) {    //跳过本次循环 并不是跳出循环	if (x == "name") continue;	console.log(x + ":" + obj1[x]);}for (var x in obj2) {	console.log(x + ":" + obj2[x]);}

需要注意,对于数组,其遍历出来的是数组的下标,并不是其中的值,这和C/OC,Swift等语言有所差异,也证明了数组在JavaScript中其实就是一种特殊的对象。

    while循环和do-while循环的差异在于whlie结构是先进行循环条件的判断,再进入循环体,而do-while结构则是先进入循环体,在进行循环条件的判断,示例如下:

var c = 1;while (c < 10) {	console.log(c);	c++;}do {	console.log(c);	c--;} while (c > 1);

    前面提到过break和continue语句,break语句用于中断switch-case匹配或者跳出最近的循环,跳出循环的意思是指执行到break后,无论后面循环次数还有多少次,直接跳出,执行循环结构之后的代码。continue语句的作用则是跳出最近的本次循环,接着进行循环条件的判断,如果满足会继续进行循环,并且如果有多层循环嵌套,break和continue也可以通过label标签指定具体跳出那层循环,示例如下:

LAB: for (var i = 0; i < 5; i++) {	for (var j = 0; j < 5; j++) {		if (j == 2) {			break LAB		};		console.log(i + '==' + j);	};};

上面的代码,如果不使用LAB标签,则外层循环不会被中断。

前端学习新人,有志同道合的朋友,欢迎交流与指导,QQ群:541458536

转载于:https://my.oschina.net/u/2340880/blog/816465

你可能感兴趣的文章
自己构建mean framework
查看>>
spawn-fcgi +uwsgi环境
查看>>
LAMP一键安装脚本(编译方式)
查看>>
UltraEditor 的 2 个有用技巧
查看>>
《开源框架那点事儿15》:借船下海还是造船下海
查看>>
ETL架构师面试题
查看>>
多线程(八、同步计数器-CyclicBarrier)
查看>>
11.5-全栈Java笔记:线程基本信息和优先级别
查看>>
我的友情链接
查看>>
Python编程快速上手让繁琐工作自动化-第十二章实践项目12.13.1乘法表
查看>>
Ibis: Scaling the Python Data Experience
查看>>
采用CH340/CH341芯片的模块使用
查看>>
what is ppa in linux Ubuntu添加PPA源
查看>>
修改Windows 桌面路径
查看>>
Ubuntu Server 中文乱码解决办法
查看>>
将整数n这个数字转换为对应的字符串
查看>>
oracle 11g 手动删除表空间文件导致数据库报错处理方法
查看>>
ASA防火墙的TCP半开设置
查看>>
Android OutOfMemoryError异常解决方法
查看>>
Qt QAxObject操作excel文件过程总结
查看>>