双色球 二维数组 Math常用方法 字符串方法 计时器

本文通过一个双色球实例展示了HTML、CSS和JavaScript的基本应用,包括动态添加元素、数组去重、随机数生成以及事件处理。同时,介绍了二维数组的操作、Math对象的常用方法,如取整、开方、随机数等。此外,还探讨了字符串的方法,如charAt、substring等,并讲解了计时器的使用,包括setInterval和setTimeout。最后,提供了计时器的实战练习,动态改变元素背景颜色。
摘要由CSDN通过智能技术生成

1.双色球实例


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>双色球</title>
		<style type="text/css">
			* {
				margin: 0;
				padding: 0;
			}
			
			.wp {
				width:1000px;
				margin: 50px auto;
			}
			.wp>div {
				display: flex;
				justify-content: space-between;
				height:50px;
				padding-bottom:20px;
			}
			.wp>div span {
				width:50px;
				height:50px;
				background:#f00;
				color: #fff;
				font-size: 30px;
				text-align: center;
				line-height:50px;
				display: block;
				border-radius:50%;
			}
			.wp>div span:last-child {
				background:#00f;
			}
			#btn {
				display: block;
				margin: 0 auto;
				width: 120px;
				height: 40px;
				text-align: center;
				line-height:40px;
				cursor: pointer;
			}
		</style>
	</head>
	<body>
		<div class="wp">
			<!-- <div>
				<span>1</span>
				<span>5</span>
				<span>8</span>
				<span>10</span>
				<span>23</span>
				<span>28</span>
				<span>9</span>
			</div> -->
		</div>
		<button id="btn">加一注</button>
	</body>
</html>
<script type="text/javascript">
	var wp = document.getElementsByClassName('wp')[0];
	var btn = document.getElementById("btn");
	
	//btn点击
	btn.onclick = function(){
		//创建一个数组
		var arr = [];
		// 给数组随机添加6个红球[1-33]
		for(var i=0;i<6;i++){
			//随机产生数
			var num = Math.floor(Math.random()*33+1);
			//判断数组中有没有num(数组去重)
			if(arr.indexOf(num)!=-1){ 
				//数组中存在 num
				i--;
			}else{
				arr.push(num);
			}
		}
		
		//随机添加篮球
		var blue = Math.floor(Math.random()*16+1);
		arr.push(blue);
		
		//循环拼接
		var str = '<div>';
		for(var i=0;i<arr.length;i++){
			str+= '<span>'+arr[i]+'</span>';
		}
		str+='</div>';
		
		wp.innerHTML += str;
	};
	
</script>

2.二维数组

// 二维数组
	// 普通数组
	var arr1 = [1,4,7];
	var arr2 = ['吕布','关羽','哪吒'];
	var arr3 = ['海绵宝宝','葫芦兄弟','水冰月'];
	// 二维数组,每一个元素都是一个数组
	var erArr = [arr1,arr2,arr3];
	// 获取二维数组中的值,arr[1][1] 第一个数组下标,获取的是arr中的第几个数组,第二 个数组下标,获取的是该数组中的第几个元素
	console.log(erArr[2][1]);
	
	// 打印出所有的数据,几维数组,就用几层for循环
	for(var i=0;i<erArr.length;i++){
		for(var k=0;k<erArr[i].length;k++){
			console.log(erArr[i][k]);
		}
	}
	
	var er1 = [[1,4,7],[0,4,8],[34,89,190]];
	var min = er1[0][0]; //获取第一个数组中的第一个元素,作为比较操作的最小值
	var minA = 0; // 设置最小值是第几个数组
	var minB = 0; // 设置最小值在当前数组的第几位
	
	for(var i=0;i<er1.length;i++){
		for(var m=0;m<er1[i].length;m++){
			if(min >er1[i][m]){
				min = er1[i][m];
				minA = i+1;
				minB = m+1;
			}
		}
	}
	console.log('最小是值'+min+',他是第'+minA+'个数组第'+minB+'位');

3.Math常用方法

/*
	Math.floor() 向下取整
	Math.round() 四舍五入
	Math.ceil() 向上取整
	Math.random() 随机数
	Math.pow() 幂函数
		参数俩个
		1.底数
		2.指数
	Math.sqrt() 开平方运算,参数不能为负数,如果为负数,取值为 NaN
	
	Math.abs() 绝对值
	
	Math.min() 最小值
	Math.max() 最大值
	最大值和最小值的参数可以有很多个,但是不能是数组,如果要查找数组中的最大和最小,需要借助于apply函数,apply可以 向max传递一个数组
	
	*/ 
   var num1 = Math.pow(2,3);
   console.log(num1);
   var num2 = Math.sqrt(16);
   console.log(num2);
   var num3 = Math.sqrt(-16);
   console.log(num3);
   
   var num4 = Math.abs(-16);
   console.log(num4);
   
   var max = Math.max(23,45,67,12,7,8,90,0);
   console.log(max);
   var min = Math.min(23,45,67,12,7,8,90,0);
   console.log(min);
   var arr = [23,45,67,12,7,8,90,0];
   var max1 = Math.max.apply(null,arr);
   console.log(max1);

4.字符串方法


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>字符串方法</title>
		<style type="text/css">
			* {
				margin:0;
				padding:0;
			}
			#wp {
				width:200px;
				height:100px;
				line-height:25px;
				overflow: hidden;
				border:1px #f00 solid;
			}
		</style>
	</head>
	<body>
		<div id="wp">
			实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知实践出真知
		</div>
		<input type="text" id="txt" value="" />
		<button type="button" id="btn">点击</button>
	</body>
</html>
<script type="text/javascript">
	/*
	1.charAt() 获取指定位置上的字符
	参数1,指定字符的位置,如果不写,就从第一个字符开始获取(不支持负数)
	返回值是查找到的字符
	
	2.charCodeAt() 获取指定位置上的字符的字符编码
	特点同 charAt()
	常用字符编码
	0-9:48-57 
	a-z:97-122
	A-Z:65-90
	
	3. String.fromCharCode(字符编码) 把提供的字符编码,转换为对应的字符,调用对象不再是字符串,而是String,他是String的一个静态方法
	
	*/
   var str1 = '你是人间的四月天';
   var str2 = str1.charAt(2);
   console.log(str2);
   var code1 = str1.charCodeAt(2);
   console.log(code1); //20154
   var str3 = String.fromCharCode(code1);
   console.log(str3);
   
   /*------------*/ 
   /*
   截取字符串的常用方法
   4.substring() 截取字符串中的子字符串,两个参数,包含开始,不包含结尾
	参数:两个
	
	1.第一个参数 指定截取开始的位置
	2.第二个参数 指定截取的结束位置
	
	特点:
		1.参数只能是正数和0,非法的参数都会被解析为0
		2.如果没有参数,则从头截取到尾部
		3.如果只有一个参数,则从参数指定的位置,截取到尾部
		4.如果有两个参数,参数会比较大小,小的为开始位置,大的为结束位置
		5.包含开始位置,不包含结尾位置
   */
  var str4 = '可怜天下父母心';
  var str5 = str4.substring(1,5);
  console.log(str5);
  
  var str6 = str4.substring('abc',5);
  console.log(str6);
  
  var str7 = str4.substring(5);
  console.log(str7);
  
  var str8 = str4.substring(5,3);
  console.log(str8);
  //实例,多行文本添加省略号
  var wp = document.getElementById("wp");
  wp.innerHTML = wp.innerHTML.substring(0,42)+'...';
  
  /*
  5.slice() 字符串截取,特性跟数组中一样
  参数为两个
	1.开始位置
	2.结束位置
  特点:
	 1.参数的值只能为整数(正负整数和0),非法字符会解析为0
	 2.不会比较大小,当两个调换的时候,会截取不同的内容
	 3.参数都省略的时候,相当于复制
	 4.只有一个参数的时候,从参数位置截取,一直到最后
	 5.值为负的时候,倒着数,从1开始
  */
 var str9 = '枯藤老树昏鸦,你丑没事我瞎';
 var str10 = str9.slice(7,9);
 console.log(str10);
 var str11 = str9.slice(6,-2);
	console.log(str11);
	/*
	6.substr()
	参数是两个
	1.开始截取的位置
	2.截取的长度
	
	特点:
	1.第一个参数可以是0 正负整数
	2.在低版本ie(6/7/8)下,第一个参数不能为负数
	
	*/ 
   var str12 = str9.substr(2,4);
   console.log(str12);
   
   var str13 = str9.substr(-4,4);
   console.log(str13);
  	
	//字符串也是可以循环输出的
	for(var i=0;i<str9.length;i++){
		console.log(str9[i]);
	}
	/*
	获取一个字符串在另一个字符串中的下标位置
	1.indexOf()
	2.lastIndexOf()
	和数组的使用方式一样
	参数
		1.要查找的字符串
		2.开始查找的位置
	如果找不到,返回-1	
	*/
   var str14 = '一见公主盗令箭';
   console.log(str14.indexOf('公主坟'));
   
   /*
   字符串转化
   toLowerCase() 大写转小写
   toUpperCase() 小写转大写
   */ 
  var str15 = 'Good Good Study';
  var str16 = str15.toLowerCase();
  console.log(str16);
   var str17 = str16.toUpperCase();
   console.log(str17);
   
   /*
   去除字符串两边的空格
   trim()
   没有参数,新增方法,低版本ie不支持
   
   */ 
  var txt = document.getElementById("txt");
  var btn = document.getElementById("btn");
  btn.onclick = function(){
	  var val = txt.value.trim();
	  console.log('*'+val+'*');
	  
  };
  /*
  字符串拼接, 和 + 拼接是一样的
  concat()
  */
  var str18 = '朱温';
  var str19 = '李克用';
  var str20 = '石敬瑭';
  var str21 = str18.concat(str19,str20);
  console.log(str21);
  
  /*
  split() 把字符串切割成数组
  参数是切割符号
  */
  var str22 = '朱温&李克用&石敬瑭&刘知远&郭威';
  var arr = str22.split('&');
  console.log(arr);
</script>

5.计时器


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>计时器</title>
		<style type="text/css">
			* {
				margin: 0;
				padding: 0;
			}
			.wp {
				width:200px;
				height: 200px;
				background: #04BE02;
				color: #ff0;
				text-align: center;
				line-height: 200px;
				font-size:50px;
			}
		</style>
	</head>
	<body>
		<div class="wp"></div>
		<button type="button" id="btn">停止</button>
		<button type="button" id="start">开始</button>
		<button type="button" id="all">清除所有计时器</button>
	</body>
</html>
<script type="text/javascript">
	/*
	计时器
	1.计时器属于BOM的内容
	2.计时器分为两种
		2.1 间隔计时器
			每间隔多长时间,执行一次某个操作
		2.2 延迟计时器
			推迟多长时间,执行一次某个操作
	3.创建计时器的方法
			
	*/
   /* 
	间隔计时器 setInterval()
	两个参数
		1.执行函数:  表示每隔一段时间,需要执行的代码都在该函数中
		2.时间间隔,单位是ms 1s=1000ms
   */
  // 第一种方式:执行函数是一个匿名函数
	var num = 0; 
	var abc = setInterval(function(){
		num++;
		console.log('同一个世界同一个梦想'+num);
	},1000);
	console.log(abc);
	
  //第二种方式:执行函数是一个 普通函数
	var wp = document.getElementsByClassName('wp')[0];
	var num1 = 0;
	// 声明一个函数
	function ab(){
		num1++;
		wp.innerHTML = num1;
	}
	
	// setInterval(ab,500);
	
	//第三种方式 执行函数是一个字符串
	// setInterval('ab()',500);
	
	//延迟计时器,只执行一次,第二个参数代表的是延迟多久执行
	setTimeout(function(){
		wp.style.background = '#f00';
	},2000);
	
	/*
	计时器的返回值,返回值是一个number,是浏览器给计时器的一个编号,谷歌是从1开始的,火狐是从2开始的,IE也是一个编号,无论任何浏览器,从第一个计时器开始,编号会越来越大
	*/ 
   
   /*
   清空计时器,让计时器停止
   clearInterval(num); //清空间隔计时器
   clearTimeout(num); //清空延迟计时器
   
   清空计时器,参数num指向一个计时器
   */ 
	//声明计时器
	var timmer;
	
	timmer = setInterval('ab()',500);
	
	var stop = document.getElementById("btn");
	var start = document.getElementById("start");
	
	//清除计时器
	stop.onclick = function(){
		clearInterval(timmer);
	};
	// 重启计时器,为了防止用户多次连续点击重启,导致计时器累加,需要在重启之前先清除计时器
	start.onclick = function(){
		clearInterval(timmer);
		timmer = setInterval('ab()',500);
	};
	
	var all = document.getElementById("all");
	all.onclick = function(){
		for(var i=0;i<10;i++){
			clearInterval(i);
		}
	};
	
</script>

6.计时器练习


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>计时器练习</title>
		<style type="text/css">
			* {
				margin: 0;
				padding: 0;
			}
			.wp {
				width: 200px;
				height: 200px;
				background: #04BE02;
				border: 1px #f00 solid;
			}
		</style>
	</head>
	<body>
		<div class="wp"></div>
		<button id="start">开始</button>
		<button id="stop">停止</button>
	</body>
</html>
<script type="text/javascript">
	// 每隔0.5妙,随机改变wp的颜色
	var wp = document.getElementsByClassName('wp')[0];
	var start = document.getElementById("start");
	var stop = document.getElementById("stop");
	var timmer;
	var num = 10;
	wp.innerHTML = num;
	var t;
	t = setInterval(function(){
		num--;
		wp.innerHTML = num;
		if(num<=0){
			clearInterval(t);
		}
	},1000);
	
	start.onclick = function(){
		clearInterval(timmer);
		timmer = setInterval(function(){
			var r = Math.floor(Math.random()*256);
			var g = Math.floor(Math.random()*256);
			var b = Math.floor(Math.random()*256);
			wp.style.background = 'rgb('+r+','+g+','+b+')';
		},500);
	};
	stop.onclick = function(){
		clearInterval(timmer);
	};
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值