循环语句

循环

JavaScript 支持不同类型的循环:

for - 循环代码块一定的次数
for/in - 循环遍历对象的属性
while - 当指定的条件为 true 时循环指定的代码块
do/while - 同样当指定的条件为 true 时循环指定的代码块

if语句

定义:为不同的决定来执行不同的动作。
if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码;
if…else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码;
if…else if…else 语句 - 使用该语句来选择多个代码块之一来执行;

	let a=1; 
	if(a>1){
		console.log("a>1");
	}else if(a===1){
		console.log("a=1");
	}else{
		console.log("a<1");
	};
	//a=1
do-while语句

一种后测试循环语句,即只有在循环体中的代码执行之后,才会测试出口条件。换句话说,在对条件表达式求值之前,循环体内的代码至少会被执行一次。
注意事项:
1、如果条件一直为 true,循环将不会结束(无限循环)。这将会使你的浏览器崩溃。
2、如果你使用变量作为条件,请在循环开始前初始化变量,并让它在循环中自增长,如果你忘记设置变量自增长,也将会出现无限循环的情况, 浏览器同样会崩溃。

卡死情况示例
	//卡死情况示例代码:
	let a=1; 
	do{
		a+=3;
		//为了避免卡死,可以人为设置跳出
		//if(a>10){
		//	break;
		//}
	}while(a>1);
	console.log(a);
正常示例
	let a=1; 
	do{
		a+=3;
	}while(a<10);
	console.log(a);
	//10
while语句

while 语句只要指定条件为 true,就会执行循环。
提示: 使用 break 语句来跳出循环,使用continue 语句用于跳出当前的迭代,并开始下一次迭代。
注意事项
1、如果你的条件一直为 true,该循环永远不会结束。该可能导致浏览器崩溃。
2、如果您忘记增加条件中所用变量的值,该循环永远不会结束。该可能导致浏览器崩溃。

	let a = 0;
	while(a<5){
		a++;
	}
	console.log(a);
	//5
for语句
	for(var i=0; i<5; i++){
		console.log( i )
	}
	//0 1 2 3 4
for-in语句

for/in 语句用于循环对象属性。
循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。
注意事项
不要使用 for/in 语句来循环数组的索引,你可以使用 for 语句替代。for in 语句对数组对象进行遍历潜在的bug在于:for in会遍历到数组的后面添加的原型链属性,并不会遍历到原生原型链上的属性!!!并不是简单地便利数组中的数据。

	var obj = { objName1:"张三", objName2:"李四", objName3:"王五"};
	for( key in obj ){
		console.log( obj[key] ); //张三  李四   王五
	}

为什么不建议数组使用for-in:

	//数组==(下例说明为什么不建议数组使用for-in)==
	Array.prototype.istrue = function(value) {return true;}
	var obj = ["张三", "李四", "王五"];
	for( key in obj ){
		console.log( obj[key] ); //张三  李四   王五  ƒ (value) {return true;}
	}
label语句

break和continue语句都可以与lebel语句联合使用,从而返回代码中特定的位置。用于嵌套循环,减少循环次数。虽然break和continue语句都可以与lebel语句能够执行复杂的操作,但如果过度使用也会给调试带来麻烦。应该根据实际业务适当使用

	var num=0;
	outermost:
	for(var i=0; i<10;i++){
		for(var j=0; j<10; j++){
			if(i==5 && j==5){
				break outermost;
			}
			num++;	
		}
	}
	console.log(num);	//55
	var num=0;
	outermost:
	for(var i=0; i<10;i++){
		for(var j=0; j<10; j++){
			if(i==5 && j==5){
				continue outermost;
				//i=0 1 2 3 4 5 6 7 8 9
				//j=0 1 2 3 4 6 7 8 9
				//i=5的时候,j只执行到4,其他正常执行,所以是95
			}
			num++;	
		}
	}
	console.log(num);   //95
break和continue语句

break 语句用于跳出循环。continue 用于跳过循环中的一个迭代。

break 语句跳出循环后,会继续执行该循环之后的代码(如果有的话):

	for(let i=0; i<10; i++){
		if(i===5){
			break;
		}
		console.log(i); // 0 1 2 3 4 循环断了,但是代码还是会往后走的
	}

continue 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代。

	for(let i=0; i<10; i++){
		if(i===5){
			continue;
		}
		console.log(i); // 0 1 2 3 4 _ 6 7 8 9 中断了5
	}
with语句

with 语句用于设置代码在特定对象中的作用域。with 语句是运行缓慢的代码块,尤其是在已设置了属性值时。大多数情况下,如果可能,最好避免使用它

	let nums = { a:1,b:2,c:3 };
	=============================================
	let nums0 = nums.a;
	let nums1 = nums.b;
	let nums2 = nums.c;
	console.log(nums0,nums1,nums2);  //1 2 3
	=============================================
	with(nums){
		let nums0 = a;
		let nums1 = b;
		let nums2 = c;
		console.log(nums0,nums1,nums2);  //1 2 3
	}
switch语句

switch 语句来选择要执行的多个代码块之一。

	switch(n)
	{
	case 1:
	  执行代码块 1
	  break;
	case 2:
	  执行代码块 2
	  break;
	default:
	  n 与 case 1case 2 不同时执行的代码
	}

工作原理:首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行,请使用 default 关键词来规定匹配不存在时做的事情。

参考:js label语句
w3school

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值