跟班学习JavaScript第二天———流程控制、分支、循环、函数

67 篇文章 0 订阅
49 篇文章 0 订阅
复习:

1内嵌到html标签中,配合使用

2在html标签中编写js语句块,语句块必须写在标签中,可以放在html的任意地方,

2.变量和常量

变量是程序运行的一段内存区域,用来存储可以改变的数据

变量申明:
  1. var 变量名 = 值

  2. var 变量名;

    变量名 = 值

常量是一段被初始化赋值之后,就不允许被修改的数据

常量申明:

const 常量名 = 值;

常量和变量可以赋的值:

在js中。数据分为两大类型:

1.原始的基本数据类型

String 字符串

Number 数字类型

Boolean 布尔类型

Null 空类型

Undefined 未定义类型

类型之间的转换:

number和boolean转string类型:toString()

string和boolean转number类型:Number(value),如果字符串里面的数据是数字则直接转成数字。但是会把左边的0去掉,如果不是正常数据,则会转成一个NaN的number类型的数据,如果是boolean转number的话,true转成1,false转成0

number和string转Boolean类型:Boolean(value),如果是字符串里面是空字符则转成false,否则是true,如果是数字类型,0为false,非零数字则转成true

2.引用数据类型

3.运算符

3.1算术运算符

+、-、*、/、%

3.2赋值运算符

=:赋值

+=:左右两边的和赋给左边

-=:左右两边相减的结果赋值给左边

3.3比较运算符

==:比较数据是否相等

===:比较数据是否相等之外,还要比较数据的类型是否相等

3.4逻辑运算符

&&、||、!、&、|

&&和&的区别:

**&&**判断表达式1,如果为false,直接返回false,不再判断表达式2;

**&**判断表达式1为false时,依旧会去判断表达式2,所以&&比&效率高

||和|的区别:

**||**判断表达式1为true的话,直接返回true,不再判断表达式2;

**|**判断表达式1为true后,依旧会去判断表达式2,所以||比|效率高

3.5位运算

一个数亦或(^)同一个数量词,得到的是它本身

//不借用第三方数据,交换两个数据
var a=20;
var b= 30;
a^=b;		//a=a^b		20^30
b^=a;		//b=b^a		30^20^30		20
a^=b;		//a=a^b		20^30^20		30
console.log('a:'+a+'\nb:'+b)

a=a^b^b			//20^30^30=20


3.6三元运算符

表达式1 and 表达式2 ? “true”:“false”;

x=5;y=8;

x>y?x:y x大于y结果为false,所以输出y

**练习:**制作一个加密和解密的程序,比如原数据是5,输出通过程序加密之后的数据是30,然后再输出程序解密之后的数据为5

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script type="text/javascript">
			// 制作一个加密程序
			// 1.原始数据
			// 2.要有一个密钥
			// 3.加密是用过密钥进行原数据改变
			// 4.解密把原数据改变后的数据进行恢复
			const original = prompt('请输入原始数据');
			// var num = original*6;
			// alert('加密过后的数据:'+num);
			// var result = num/6;
			// alert('解密后的数据:'+result);
			var num;
			num=(original*30)/5;
			alert("加密过后的数据:"+num);
			var result;
			result=original^num^num;
			alert("解密过后的数据:"+result);
		</script>
	</head>
	<body>
		
	</body>
</html>

流程控制语句

分支语句

基础分支语句(判断语句)

if(表达式) {执行语句}(多选一)

执行语句要执行的话,表达式的结果必须为true

单分支语句(判断语句)

if(表达式) {语句1}else{语句2}(二选一)

表达式结果为true,执行表达式1,若不成立则执行表达式2

案例:成年可以进入网吧,未成年不可进入网吧

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>分支语句</title>
		<script type="text/javascript">
			var a = prompt("请输入你的年龄");
			if (a > 18) {
				alert('你已成年了,欢迎进入XXX');
			} else {
				alert('未成年禁止进入');
			}
		</script>
	</head>
	<body>
	</body>
</html>

多分支语句(多判断条件)

if(表达式1) {语句1}else if (表达式2){语句2}else if(表达式3) {语句2}…… else{语句n} 逐步判断

判断多个表达式,如果表达式成立即可执行后面的语句,若是不成立就判断下个else if后面的表达式

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			var num = prompt('请输入学生人数');
			if (0 < num && num <= 20) {
				alert('将进入1号教室');
			} else if (20 < num && num <= 50) {
				alert('将进入2号教室');
			} else if (50 < num && num <= 80) {
				alert('将进入3号教室');
			} else if (80 < num && num <= 200) {
				alert('将进入4号教室')
			} else {
				alert('场地有限,满足不了');
			}
		</script>
	</head>
	<body>
	</body>
</html>

案例:根据学生人数选择教教室,每个教室能容纳的人数不同

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			var num = prompt('请输入学生人数');
			if (0 < num && num <= 20) {
				alert('将进入1号教室');
			} else if (20 < num && num <= 50) {
				alert('将进入2号教室');
			} else if (50 < num && num <= 80) {
				alert('将进入3号教室');
			} else if (80 < num && num <= 200) {
				alert('将进入4号教室')
			} else {
				alert('场地有限,满足不了');
			}
		</script>
	</head>
	<body>
	</body>
</html>

案例:判断闰年

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			// 闰年:能被4整除且不能被100整除,或者能被400整除
			var year = prompt("请输入年份");
			if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
				alert(year + "是闰年");
			} else {
				alert(year + '是平年');
			}
		</script>
	</head>
	<body>
	</body>
</html>

练习:根据用户输入的月份,打印出细节,比如:一到三月是春,四到六是夏,七到九是秋,十到十二是冬。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			var m = prompt('请输入要查询的月份');
			if (0 < m && m < 4) {
				alert("现在是春季");
			} else if (3 < m && m < 7) {
				alert("现在是夏季");
			} else if (6 < m && m < 10) {
				alert("现在是秋季");
			} else if (9 < m && m < 13) {
				alert("现在是冬季");
			} else {
				alert("没有这个月份,请输出正确的月份");
			}
		</script>
	</head>
	<body>
	</body>
</html>


特殊的分支语句

switch() {

case ‘值’:

执行语句;

break;

……

default:

执行语句

}

注意:switch() 括号里面的变量值的类型要与case后面的值的类型相同,是全比较(===)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
		//因为prompt()接受得到的值是String类型的,case后面的值是数字类型的,所以要把w转成数字型;或者让case后面的加引号,变成字符串型
			var w = prompt('请输入相应的星期日');
			w = Number(w);
			switch (w) {
				case 1:
					alert('今天是星期一');
					break;
				case 2:
					alert('今天是星期二');
					break;
				case 3:
					alert('今天是星期三');
					break;
				case 4:
					alert('今天是星期四');
					break;
				case 5:
					alert('今天是星期五');
					break;
				case 6:
					alert('今天是星期六');
					break;
				case 7:
					alert('今天是星期天');
					break;
				default:
					alert('没有这个星期数');
			}
		</script>
	</head>
	<body>
	</body>
</html>


num与case后面的值匹配,匹配成功就输出,若是都不匹配,就输出default后面的执行语句
switch(num)里面的num在js里面可以传任意值
如果我们的判断条件是一个区间,这种情况就可以适使用if,如果我们的判断条件是固定的值,就用switch
注意事项:必须传入一个值和case后面的值去比较,然后每个case中的执行语句后面必须加上break

练习:判断用户输入的1-7弹出对应的星期,如果输出的不是1-7,就弹出不是

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			var w = prompt('请输入相应的数字');
			switch (w) {
				case '1':
					alert('今天是星期一');
					break;
				case '2':
					alert('今天是星期二');
					break;
				case '3':
					alert('今天是星期三');
					break;
				case '4':
					alert('今天是星期四');
					break;
				case '5':
					alert('今天是星期五');
					break;
				case '6':
					alert('今天是星期六');
					break;
				case '7':
					alert('今天是星期天');
					break;
				default:
					alert('没有这个星期数');
			}
		</script>
	</head>
	<body>
	</body>
</html>


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			var num = 2;
			switch(num) {
				case 1:
				alert('1');
				break;
				case 2:
				alert('2');
				break;
				case 3:
				alert('3');
				break;
				default:
				 alert("null");
			}
			
		</script>
	</head>
	<body>
	</body>
</html>

循环语句

在生活中,我们可能需要程序来描述重复操作某一件事情,类似于跑二十圈,我们就是重复的执行跑步的操作

for循环

属于开发过程中,常用的分支之一,特点是分支条件丰富,可以提供复杂循环终止或者开始条件

for(表达式1;表达式2;表达式3) {

循环体,执行语句

}

注意:写for循环之前一定要先确定开始循环的条件,终止的条件,每次循环执行的操作

1.执行表达式1:var i=1;

2.执行表达式2,:i<=20;判断是否成立,

3.执行循环体:alert(‘跑了’+i+‘圈’);

4.执行表达式3:i++,i=2

2.执行表达式2,i<=20;判断是否成立

……一直循环2,3,4这三步,直到表达式2的结果为false,就结束循环

<script type="text/javascript">
			// 模拟跑步的操作
			for(var i=1;i<=20;i++) {
				alert('跑了'+i+'圈');
			}
		</script>

练习:

求1-10的和

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			// 1-10的和
			var sum = 0;
			for (var i = 1; i <= 10; i++) {
				// 1+2+3+4+5+6+7+8+9+10=55
				sum += i;
			}
			alert('sum:' + sum);
			alert('1-10的平均数:'+sum/10);
		</script>
	</head>
	<body>
	</body>
</html>

练习:求1-100中所有的奇数的和,和所有偶数的和

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			var oddnum = 0;
			var evennum = 0;
			for (var i = 1; i <= 100; i++) {
				if (i % 2 == 0) {
					evennum += i;
				} else {
					oddnum += i;
				}
			}
			alert('100以内所有的偶数和:' + evennum);
			alert('100以内所有的奇数和:' + oddnum);
		</script>
	</head>
	<body>
	</body>
</html>

嵌套循环:在一些特殊的场景下,我们可能一个for循环无法实现效果,需要在for循环中套入for循环

练习:打印出九九乘法表(必要掌握)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			document.write("<h1>九九乘法表</h1>");
			for(var x=1;x<=9;x++) {
				for(var y=1;y<=x;y++) {
					document.write(x+'*'+y+'='+(x*y));
					document.write("&nbsp&nbsp");
				}
				document.write("<br/>");
			}
		</script>
	</head>
	<body>
	</body>
</html>

while循环

语法:

while(循环条件) {

循环体

}

while循环的弊端:变量的申明在循环的外面,循环结束变量还在

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			var run = 1;
			while(run<10) {
				alert("跑了"+run+'圈');
				run++;
			}
		</script>
	</head>
	<body>
	</body>
</html>

do {

循环体

}while(循环条件)

不管while中的表达式是否成立,do中的循环体都会先执行一次

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			// 跑10圈之后就结束
			var run = 1;
			do {
				alert("跑了"+run+'圈');
				run++;
			}while(run<11)
		</script>
	</head>
	<body>
	</body>
</html>

练习:

1.1-100的和

2.1-100的和的平均数

3.1-100的所有偶数和

4.1-100的所有奇数和

5.1-100的能被4整除的数的和

for循环
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			// 1-100的和
			var sum = 0;
			var oddnum = 0;
			var evennum = 0;
			var sumf = 0;
			// for
			for (var i = 1; i <= 100; i++) {
				sum += i;
				if (i % 2 == 0) {
					evennum += i;
				} else {
					oddnum += i;
				}
				if (i % 4 == 0) {
					sumf += i;
				}
			}

			alert('1-100的和为:\n' + sum);
			alert('1-100的平均值:\n' + (sum / 100));
			alert("1-100的所有偶数和:\n" + evennum);
			alert("1-100的所有奇数和:\n" + oddnum);
			alert("1-100的能被4整除的数的和:\n" + sumf);
		</script>
	</head>
	<body>
	</body>
</html>

while循环
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>while</title>
		<script type="text/javascript">
			// 1-100的平均值
			var sum = 0;
			var oddnum = 0;
			var evennum = 0;
			var sumf = 0;
			var i=1;
			while (i<=100){
				// 1-100的和
				sum+=i;
				if (i % 2 == 0) {
					evennum += i;
				} else {
					oddnum += i;
				}
				if (i%4==0) {
					sumf+=i;
				}
				i++;
			}
			alert('1-100的和为:\n' + sum);
			alert('1-100的平均值:\n' + (sum / 100));
			alert("1-100的所有偶数和:\n" + evennum);
			alert("1-100的所有奇数和:\n" + oddnum);
			alert("1-100的能被4整除的数的和:\n" + sumf);
		</script>
	</head>
	<body>
	</body>
</html>

JS函数

把具备一定功能或者一定业务逻辑的代码放在一起,给它取一个名字,这个有名字的代码块就叫做函数,通过函数我们可以大大的减少重复的代码,减少代码量

函数语法声明:(function:函数的关键词,用来描述函数的)

1.变量形式的声明:

​ var fun = function() {

​ 执行内容;

}

2.函数形式的声明:

​ function fun2() {

​ 执行内容;

}

函数的调用

直接在js的代码块中,通过函数名()调用,若是不调用,函数就只加载,不执行

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			var fun= function() {
				alert("变量声明的函数");
			}
			function c() {
				alert('函数形式的声明');
			}
			fun();
			c();
		</script>
	</head>
	<body>
	</body>
</html>

练习:编写一个函数,该函数打印九九乘法表,然后再调用该函数

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			function m() {
				for(var x=1;x<=9;x++) {
					for(var y=1;y<=x;y++) {
						document.write(x+'*'+y+'='+(x*y));
						document.write("&nbsp&nbsp&nbsp&nbsp");
					}
					document.write("<br/><br/>")
				}
			}
			m();
		</script>
	</head>
	<body>
		
	</body>
</html>

函数种类:

1.按照参数类型划分

​ 无参函数和有参函数

无参函数:函数的方法中没有传递任何参数,无需传递数据,直接调用

		var fun= function() {
		}

有参函数:函数的方法中需要传递参数,在调用时需要传递一个参数给函数

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			var run = function(num) {
				alert("跑了"+num+"圈");
			}
			run(5);
			run(10);
		</script>
	</head>
	<body>
	</body>
</html>

形参和实参:

​ 形参:定义一个范型的参数,没有实际的值,可以是任何类型

​ 实参:在函数中实际使用的参数值。

练习:班上有5位同学,要求编写一个函数记录每个同学的姓名,分数

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			function result(n,f) {
				document.write(n+'的分数为:&nbsp&nbsp&nbsp&nbsp'+f+"<br/>");
			}
			result("张三",88);
			result("李四",89);
			result("王五",80);
			result("周六",85);
			result("田七",87);
		</script>
	</head>
	<body>
	</body>
</html>

2.按照返回值区分

有返回值的函数:调用函数处理完毕之后,函数返回一个数据。

函数的返回值通过return关键字返回

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			// 编写一个函数,比较之间的最大数
			function max(num1,num2) {
				if(num1>num2) {
					return num1;
				}else if(num1<num2) {
					return num2
				}else {
					return num1;
				}
			}
			var maxnum = max(10,10);
			alert(maxnum);
		</script>
	</head>
	<body>
	</body>
</html>

无返回值的函数:调用函数处理完毕之后,函数不返回任何数据。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值