JavaScript 第二天

1. 数组生成

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
	</body>
	<script type="text/javascript">
		//不常用
		//var arr = new Array(1,2,'哈哈');
		//1.数组的定义
		var arr = [1,2,'哈哈'];
		
//		alert(arr);  //弹出1,2,哈哈
//		//2.按下标取元素
//		alert(arr[0]);  //弹出1
//		
		
		//3.获取数组长度=个数 = 3
//		alert(arr.length);  //弹出3
		
		//4.把数组转化为字符串。通过什么符号去分割。
//		alert(arr.join(''));  //弹出12哈哈
//		alert(arr.join('-')); //弹出1-2-哈哈

//		//5.push在数组最后追加一个数据
//		arr.push('呵呵');
//		alert(arr);  //弹出1,2,哈哈,呵呵
		
//		//6.pop删除数组的最后一个数据
//		arr.pop();
//		alert(arr); //弹出1,2 
		
		//7.数组反转
//		alert(arr.reverse());  //弹出哈哈,2,1
		
		//8.indexOf查找数组数据的下标。如果找不到则返回-1。
//		alert(arr.indexOf(1));  //弹出0
//		alert(arr.indexOf(3));  //弹出-1
		
		
		var arr2 = [1,2,3,4,5];
//		//从第二个元素开始,删除3个元素,然后在此位置增加3,4
//		arr2.splice(2,3,3,4);   //数组是可变类型
//		alert(arr2);  //弹出1,2,3,4
		
//		//从第一个元素开始,删除0个元素,在此位置再增加'这是我想要添加的'
//		//实际上就是可以在任意位置插入想要增加的元素
//		arr2.splice(1,0,'这是我想要添加的');
//		alert(arr2);   //弹出1,这是我想要添加的,2,3,4,5


		//多维数组。数组嵌套数组
		var arr3= [[1,2,3],[4,5,6]];
		alert(arr3);  //弹出1,2,3,4,5,6,
		alert(arr3[0][1]);  //弹出2
	</script>
</html>

2.  循环

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
	</body>
	<script type="text/javascript">
		//for(初始值;循环的次数;递增){
//			
//		}

		for(var i = 0;i <3;i++){
			alert(i);
		}
	</script>
</html>

3. 数组去重

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
	</body>
	<script type="text/javascript">
		var list = [3,4,3,4,5,5];
		var list2 =[];
		
//		第一次执行:3的下标是0和2,但是indexOf只会取到第一个3的下标0,
//      刚好对应是i(0),执行加入到list2
//		第三次执行:3的下标又会取到第一个3的下标0,二对应的是i(2),
//      不匹配因此不加入到list2中,以此排除类推
		for(i = 0; i < list.length; i++){
			if(list.indexOf(list[i]) == i){
				list2.push(list[i]);
			}
		}
		alert(list2);
		
	</script>
</html>

4. 案例 - 将数组内容打印到列表

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			ul {
				width: 300px;
				height: 300px;
				background: lightblue;
				font-size: 40px;
			}
			
			a {
				text-decoration: none;
			}
		</style>
	</head>

	<body>
		<ul id="box">

		</ul>
	</body>
	<script type="text/javascript">
		//定义数组  将列表内容装入数组
		var list = ['复仇者联盟', '后来', '头号玩家', '海绵宝宝'];
		//获取列表元素
		var oBox = document.getElementById('box');


		//循环添加
		for(var i = 0; i < list.length; i++) {
			oBox.innerHTML += '<li><a href="http://www.baidu.com">' + list[i] + '</a></li>'
		}
	</script>

</html>

5.  调试程序的方法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
	</body>
	<script type="text/javascript">
		for(var i=0; i<100; i++){
			
			//通常我们用这种这种方法能看到效果进行调试
			//但是如果像本程序中循环次数过多的话,alert直接看结果会造成很大的困扰
//			alert(i);

			//推荐使用console.log()来进行查看和调试
			console.log(i)
		}
	</script>
</html>

6.  字符串的操作

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
	</body>
	<script type="text/javascript">
		var num1 = '12.98';
		var num2 = 13;
		var num3 = 12;
		
//		//1、字符串合并操作:“ + ”
//      //数字和字符串相加等同于字符串相加
//		alert(num1+num2);  //弹出12.9813
//		alert(num2 + num3);  //弹出25
//		alert(num1 + num2 + num3);  //弹出12.981312
//		alert(num2 + num3 + num1);  //弹出2512.98


//		//2、parseInt() 将 数字字符串 转化为整数
//		parseInt取整。不会四舍五入。可以转为数值
//		alert(parseInt(num1));   //弹出12
//		alert(parseInt(num1) + num2);  //弹出25


//		//3、parseFloat() 将 数字字符串 转化为小数
//		//parseFloat转为小数。可以转为数值
//		alert(parseFloat(num1) + num2);  //弹出25.98



//		//4、减号,自带会把数据类型转成数值
//		alert( num1-0 );   //是parseInt、parseFloat之外简单的将 数字字符串 转化为数字类型的方法
//		alert(num1 + num2);  //弹出12.9813
//		alert(num1-0 + num2);  //弹出25.98
		

//		//5、split() 把一个字符串分隔成字符串组成的数组
//		var sTr = '2018-5-4';
//		var arr1 = sTr.split("-");  //['2018','5','4']
//		var arr2= sTr.split("");	//['2','0','1','8','-','5','-','4']
//		
//		alert(arr1);  //弹出2018,5,4
//		alert(arr2);  //弹出2,0,1,8,-,5,-,4


//		//6、indexOf() 查找字符串是否含有某字符
//		//找出元素的下标。如果找不到就返回-1
//		alert(num1.indexOf('.'));  //弹出2
//		alert(num1.indexOf('a'));  //弹出-1
		
		
		//7、substring() 截取字符串 用法: substring(start,end)(不包括end)
		//第一个值代表开始,第二值代表是结束
		//假如直接一个值,只有开始,没有结束
		var num4 = '13.3333333344444555555';
		alert(num4.substring(2,5));   //弹出.33
		alert(num4.substring(2));  //弹出.3333333344444555555
	</script>
</html>

7. 字符串的反转

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
	</body>
	<script type="text/javascript">
		var sTr = '123abcdef';
		
		//先把字符串转成数组。再反转。再转为字符串
		//字符串没有反转操作
		alert(sTr.split('').reverse().join(''));  //弹出fedcba321
	</script>
</html>

8. 变量的作用域

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
	</body>
	<script type="text/javascript">
		/*
		 变量作用域指的是变量的作用范围,javascript中的变量分为全局变量和局部变量。

		1、全局变量:在函数之外定义的变量,为整个页面公用,函数内部外部都可以访问。
		2、局部变量:在函数内部定义的变量,只能在定义该变量的函数内部访问,外部无法访问。
		 */
		
		var num1 = 123;   //全局变量
		
		function fnAlert(){
			
			var num2 =321;  //局部变量
			
			alert(num1);
			alert(num2);
		}
		
		fnAlert();   //第一次弹出123 & 第二次弹出321 
		alert(num1);   //弹出123
		alert(num2);   //不能弹出,错误
	</script>
</html>

9. 定时器基础

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<input type="button" value="开启多次定时器" id="btn1"/>
		<input type="button" value="开启单次定时器" id="btn2"/>
		<input type="button" value="关闭多次定时器" id="btn3"/>
		<input type="button" value="关闭多次定时器" id="btn4"/>
	</body>
	<script type="text/javascript">
		var oBtn1 = document.getElementById('btn1');
		var oBtn2 = document.getElementById('btn2');
		var oBtn3 = document.getElementById('btn3');
		var oBtn4 = document.getElementById('btn4');
		var mUl = null;
		var sIng = null;
		
		//多次定时器
		oBtn1.onclick = function(){
			mUl = setInterval(function(){
				alert('炸了');
			},3000)
		}
		
		//单次定时器
		oBtn2.onclick = function(){
			sIng = setTimeout(function(){
				alert('炸了');
			},3000)
		}
		
		//关闭多次定时器
		oBtn3.onclick = function(){
			clearInterval(mUl);
		}
		
		//关闭单次定时器
		oBtn4.onclick = function(){
			clearTimeout(sIng);
		}
	</script>
</html>

10. 倒数计时案例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<h1 id="box">
			3
		</h1>
	</body>
	<script type="text/javascript">
		var oBox = document.getElementById('box');
		
		var num = 10;
	
		setInterval(function(){
			if(num ==0){
				oBox.innerHTML = '嗨,您的计时已经结束了!';
				return ;
			}
			num--;
			oBox.innerHTML = num;
		},1000)
		
	</script>
</html>

11. 跑步动画

图片资源:a.jpg

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			body {
				/*设置背景颜色和照片背景颜色一致*/
				background: #c7c7c7;
			}
			
			img {
				width: 250px;
				position: absolute;
				left: 0;
				top: 200px;
			}
		</style>
	</head>

	<body>
		<input type="button" value="走你" id="btn1" />
		<input type="button" value="停下" id="btn2" />
		<img src="a.jpg" id="pic" />
	</body>
	<script type="text/javascript">
		//获取元素
		var oBtn1 = document.getElementById('btn1');
		var oBtn2 = document.getElementById('btn2');
		var oPic = document.getElementById('pic');
		//定义两个变量  留待后续用
		var start = null;
		var num = 0;
		
		
		//定时器毫秒问题,不要低于80.
		//点击事件
		oBtn1.onclick = function() {
			//先清除定时器,再执行定时器。避免效果叠加
			//可以尝试注释此行,重复点击'走你'按钮,查看效果
			clearInterval(start);
			//设置定时器
			start = setInterval(function() {
				//判断限定移动的像素
				if(num <= 1000){
					num += 5;
					oPic.style.left = num + 'px';
				}
			}, 80)
		}
		
		//关闭定时器
		oBtn2.onclick = function() {
			clearInterval(start);
		}
	</script>

</html>

12. 案例 - 获取当前时间

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body id='body'>
	</body>
	<script type="text/javascript">
		
		setInterval(function(){
			
			var date = new Date();  //new Date() 获取当前所有的时间
			var year = date.getFullYear();  //获取年
			var month = date.getMonth() + 1;  //获取月.月份要加1
			var day = date.getDate();  //获取日
			var hours = date.getHours();  //获取时
			var minutes = date.getMinutes();  //获取分
			var second = date.getSeconds();  //获取秒
			var week = date.getDay();  //获取周
			var oBody = document.getElementById('body');
			
			//拼接HTML内容
			oBody.innerHTML = '<h1>'+year+'年'+month+'月'+day+'日'+hours+'时'+minutes+'分'+second+'秒周'+week+ '</h1>';
		})
		
	</script>
</html>

13. 封闭函数

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
	</body>
	<script type="text/javascript">
		
		function aa(){
			alert('我是封闭外面的函数')
		}
		aa();
		
		//封闭函数语法  (function(){ })()
		//封闭函数:不会影响别人,别人也影响不到我
		//项目中由多人合作时,可以用到封闭函数,防止函数、变量的重名
		(function(){
			function aa(){
				alert('我是封闭里面的函数')
			}
			aa();
		})()
	</script>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值