前端开发:JS基础入门02

为君一笑 提交于 2019-12-28 00:26:44

JS的快速入门

三元表达式

?:
表达式1 ? 代码1 : 代码1;
语法解析 :

  1. 表达式1成立 , 就执行代码1, 否则就执行代码2
  2. 如果代码1或者代码2有结果, 那么这个三元表达式的结果就是代码1或者代码2的结果

表达式1可以是哪些表达式 :

  1. 关系表达式
  2. 布尔类型的值

一般表达式都会有一个结果 要不就直接输出, 要不就是用一个变量保存

数据转换

显示转换,隐式转换

显示转换:

转换成String类型

  1. 其他数据类型转换成字符串(String类型):String(变量名或者数据)
    可以转换undefined和null
  2. 变量名.toString()
    不可以转换undefined和null
    转换成数字类型:
  3. 数据+"" 在数据后面加一个空字符串就可以实现转换

转换成number类型

  1. parseInt() 把其他数据类型转换成整数类型 偏向于转换字符串

    特点 :
    (1) 从左到右解析,遇到非数字字符, 就停止解析, 输出已经解析出的数字
    (2) 如果第一字符就是非数字字符, 就无法转换, 得到NaN

  2. parseFloat() 把其他数据类型转换成小数
    与parseInt特点一样, 唯一的区别, 就是可以解析小数

  3. Number() 把其他数据类型转换成数字
    特点
    (1) 可以把其他数据类型转换成数字类型, 偏向于转布尔类型的数据
    (2) 如果转换的数据里面有任意一个是非数字字符(小数点除外), 那么得到的结果就是NaN
    (3) 注意undefined 转换成数字, 是NaN null 是0
    (4) 转布尔类型 true 是1 false是0

  4. 在数据前面加 +
    特点 :
    跟Number()转换的原理一样, 特点也一样
    把+ 当做数学里面的正负号来用
    在我们算术运算符里面, 运算符两边的操作数必须是数字

转换成布尔类型

  1. Boolean()
  2. 转换成false的8种情况,(其他都是true):0,-0,null,NaN,undefined,"",false,document.all

隐式转换:

1.转换成字符串:+ 字符串连接符,运算符两边,只要有一边是字符串,那么就会把另外一边转成字符串进行拼接
2.转换成数字:自增自减,算数运算符(除+作为字符串连接符以外)两边必须是数字才能计算
3.转换成布尔类型:! 逻辑非的操作必须是布尔类型的,计算机自动转换

短路运算

在逻辑表达式中,如果第一个式子就可以决定整个逻辑表达式的结果,那么第二个式子就不用计算了
1.逻辑与的短路运算:找假
在逻辑与表达式中,如果第一个式子的结果为false,那么该逻辑表达式的结果就是第一个式子的值,否则就是第二个式子的值

2.逻辑或的短路运算:找真
在逻辑或表达式中,如果第一个式子的结果为true,那么该逻辑表达式的结果就是第一个式子的值,否则就是第二个式子的值

3.逻辑非没有短路运算

分支结构 :

1. if

语法结构 :
if (表达式) {
条件成立时执行的代码
}

表达式可以是哪些 :

  1. 关系表达式
  2. 布尔类型的值
  3. 其他类型的值

if结构里面的{} 在条件成立时需要执行的代码只有一行时可以省略, 但是一般不要省略

2. if else(用的最多)

语法结构 :
if(表达式) {
条件成立时执行的代码(代码1)
} else {
条件不成立时执行的代码(代码2)
}

语法解析 :

  1. 当表达式成立时, 执行代码1, 否则执行代码2
  2. if-else 是表示两个互斥的结构, 只满足其中一个 , 两个大括号的里面的代码不可能同时执行
  3. else 后面绝对不能接()

3. if else-if else

语法结构 :
if(条件1) {
条件1成立时执行的代码
} else if (条件2) {
条件2成立时执行的代码
}

else {
以上条件都不满足的时候, 执行的代码
}

特点 :

  1. if-else if 是做多条件判断的
  2. 所有大括号里面的代码只会执行一个

4. swicth case

switch-case 主要用于固定值匹配
switch-case 匹配规则 : 匹配值必须是全等的
break的作用 : 是用来结束switch-case语句的 可以不写, 但是不写 会出现穿透现象(防止穿透)
break只能用于switch语句和循环语句

循环结构 :

while 代码结构 :

while(条件 true/ false) {
循环体 : 重复执行的代码
}

特点 : 先奏后斩
结构解析 :
判断条件是否成立, 如果成立, 执行循环体代码, 重复判断条件是否成立
如果不成立, 跳出循环, 执行大括号之后的代码

条件语句可以是哪些 :
1 .关系表达式
2. 布尔类型的值
3. 其他类型的值 (都会转换成布尔类型)

do-while结构 :

do-while 结构

do {
循环体 : 条件成立时重复执行的代码
} while (判断条件 true / false);

结构解析 : 先无条件执行一遍循环体, 然后再判断, 如果条件成立, 就重复执行循环体代码
特点 : 先斩后奏

for循环结构(最常用) :

for(语句1 ; 语句2 ; 语句3) {
循环体 : 条件成立时重复执行的代码
}

语句1 : 声明一个变量, 来记录循环次数, 叫做循环变量
语句2 : 判断条件(通常是条件表达式), 他是用来控制循环的结束还是继续
语句3 : 通常都是循环变量的自增或者自减

结构解析 :
1. 执行语句1(声明循环变量)
2. 执行语句2, 判断条件是否成立:
(1) 如果成立 执行循环体代码
(2) 循环变量自增, 重复执行步骤2
如果不成立, 就跳出循环, 执行大括号外面的代码

三种循环结构的适用场景 :

while : 适用于循环次数不固定的场景
do-while : 适用于循环次数不固定的场景, 但是循环体代码必须无条件执行一次
for : 适用于循环次数固定的场景

三种循环的注意点 :

for :

  1. 小括号里面的语句都可以省略, 但是分号不能省略, 三个语句都省略了, 就变成死循环了
  2. 循环变量的定义可以提到循环外
  3. 循环变量自增可以写在循环体里面

while :

  1. 循环变量 循环条件 循环变量的自增或者自减 都必须有
  2. 循环变量自增或者自减一定不能忘

do-while :

  1. 循环变量 循环条件 循环变量的自增或者自减 都必须有
  2. 循环变量自增或者自减一定不能忘

循环的解析思想

箩筐思想求和
1. 声明空箩筐
2. 遍历萝卜堆数
3. 计算萝卜总数

打擂思想求极值
1. 声明一个空擂主
2. 遍历所有的挑战者
3. 依次和擂主PK

开关思想数组去重

循环的嵌套 :

一个循环套着一个循环
循环嵌套中, 我们要找到外层循环变量和内存循环变量之间的关系
外层循环决定行, 内层循环决定列

练习

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
	</head>
	<body>
		<script>
			//1.电话
//			var yewu=+prompt("请输入要办理的业务:1.余额查询;2.取款;3.转账;0.退出系统");
//			while(true){
//				if(yewu==1){
//					alert("余额查询中...");
//					break;
//				}else if(yewu==2){
//					alert("取款进行中...");
//					break;
//				}else if(yewu==3){
//					alert("转账进行中...");
//					break;
//				}else if(yewu==0){
//					alert("退出系统,谢谢使用");
//					break;
//				}else{
//					alert("业务出错");
//					break;
//				}
//			}
			
			
//			var yewu=+prompt("请输入要办理的业务:1.余额查询;2.取款;3.转账;0.退出系统");
//			while(true){
//				if(yewu==1){
//					alert("余额查询中...");
//					break;
//				}else if(yewu==2||yewu==3){
//					alert("系统维护中。。。");
//					break;
//				}else if(yewu==0){
//					alert("退出系统,谢谢使用");
//					break;
//				}else{
//					alert("业务出错");
//					break;
//				}
//			}




//			2.奇数和偶数和3的倍数
//			var num=1;
//			var onum=0;
//			var jnum=0;
//			var sbnum=0;
//			while(num<=100){
//				if(num%2==0){
//					onum+=num;
//					console.log("偶数和"+onum);
//				}else{
//					jnum+=num;
//					console.log("奇数和"+jnum);
//				}
//				num++;
//			}
//			
//			while(num<=100){
//				if(num%3==0){
//					sbnum += num;
//					console.log("3的倍数和"+sbnum);
//					break;
//				}
//				num++;
//			}




//			3.猜数字
//			var n1=Math.ceil(Math.random()*10);
//			var n2;
//			while(true){
//				n2=+prompt("请输入0-9之间的整数");
//				if(n2>n1){
//					alert("猜大了");
//				}else if(n2<n1){
//					alert("猜小了");
//				}else if(n2==n1){
//					alert("猜对了");
//					break;
//				}else{
//					alert("别搞我");
//				}
//			}
//			
//			4.月份
//			var month;
//			while(true){
//				month=+prompt("请输入月份");
//				switch(month){
//					case 12:
//					case 1:
//					case 2:
//					alert("冬天");
//					break;
//					case 3:
//					case 4:
//					case 5:
//					alert("春天");
//					break;
//					case 6:
//					case 7:
//					case 8:
//					alert("夏天");
//					break;
//					case 9:
//					case 10:
//					case 11:
//					alert("秋天");
//					break;
//					
//					
//					default:
//					alert("别搞我");
//					break
//				}
//				
//			}



//			5.1-100随机数
//			var num;
//			while(true){
//				num=Math.ceil(Math.random()*100);
//				if(num<20){
//					alert("随机数为"+num+"结果为"+(num+=30));
//				}else if(num>=20 && num<50){
//					alert("随机数为"+num);
//				}else if(num>=50){
//					alert("随机数为"+num+"结果为"+(num-=20));
//				}else{
//					alert("别搞我");
//				}
//			}


			
		</script>
	</body>
</html>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
	</head>
	<body>
		<script>
//			1.  请写1个程序,打印100次 新年到啦
//			for(var i=0;i<100;i++){
//				console.log("新年到了");
//			}

//			2.请写1个程序,接收用户输入1个整数. 然后打印这个整数的2倍  接收5次.
//			var num=parseInt(prompt("请输入一个整数"));
//			for(var i=0;i<5;i++){
//				console.log(num=num*2)
//			}


//			3.打印100-200之间的整数
//			for(var i=100;i<=200;i++){
//				console.log(i);
//			}

//			4.打印100-200之间能被7整除的数
//			for(var i=100;i<=200;i++){
//				if(i%7==0){
//					console.log(i);
//				}
//			}


//			5.打印1-100之间所有整数的和

//			for(var i=1,num=0;i<=100;i++){
//				num+=i;
//			}
//			console.log(num);

//			6.打印1-100之间所有偶数的和
//			for(var i=1,num=0;i<=100;i++){
//				if(i%2==0){
//					num+=i;	
//				}
//				
//			}
//			console.log(num);


//			7.请用户输入5个数, 将最大的那个数打印出来
//			var n1= +prompt("第一个数"), 
//				n2= +prompt("第二个数"), 
//				n3= +prompt("第三个数"), 
//				n4= +prompt("第四个数"),
//				n5= +prompt("第五个数");
//				if(n1>n2&&n1>n3&&n1>n4&&n1>n5){
//					alert("最大值为:"+n1);
//				}else if(n2>n1&&n2>n3&&n2>n4&&n2>n5){
//					alert("最大值为:"+n2);
//				}else if(n3>n1&&n3>n2&&n3>n4&&n3>n5){
//					alert("最大值为:"+n3);
//				}else if(n4>n1&&n4>n2&&n4>n3&&n4>n5){
//					alert("最大值为:"+n4);
//				}else if(n5>n1&&n5>n2&&n5>n3&&n5>n4){
//					alert("最大值为:"+n5);
//				}
				
				
//				方法2
//				var num;
//				var max=-Infinity;
//				for(var i=0;i<5;i++){
//					num=+prompt("请输入第"+i"个数字");
//					if(num>max){
//						max=num
//					}
//				}
//				alert("最大值为:"+max); 
				









//				8.用户输入学生的人数,然后依次输入每一个学生的成绩,输入完毕后计算平均成绩
//					提示 : 必须使用循环来实现
//				var num=+prompt("请输入学生人数");
//				var sc=0
//				var chengji;
//				for(var i=0;i<num;i++){
//					chengji= +prompt("请输入成绩");
//					sc+=chengji;
//					
//				}
//				document.write("平均成绩为:"+(sc/num));


//				9.输入某年某月某日,判断这一天是这一年的第几天? 
// 				以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,
//				特殊情况,闰年且输入月份大于3时需考虑多加一天。
//				var year=+prompt("请输入年份");
//				var month=+prompt("请输入月份");
//				var day=+prompt("请输入几号");
//				var count=0;
//				switch(month){
//					case 12:
//					count+=30;
//					case 11:
//					count+=31;
//					case 10:
//					count+=30;
//					case 9:
//					count+=31;
//					case 8:
//					count+=31;
//					case 7:
//					count+=30;
//					case 6:
//					count+=31;
//					case 5:
//					count+=30;
//					case 4:
//					count+=31;
//					case 3:
//					count+=28;
//					case 2:
//					count+=31;
//					case 1:
//					count+=day;
//					default:
//					break;
//				}
//				if((year%400==0||(year%4==0&&year%100!=0))&&month>2){
//					count++;
//				}
//				alert(count);


				for(var i=1; i<=5;i++){
					for(var j=1;j<=i;j++){
						document.write(i+"*"+j+" ");
					}
					document.write("</br>")
				}
			
		</script>
	</body>
</html>
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!