JS常见习题

前言

随手记录下学习JS过程中一些例题解答过程.

一、JS实现简易ATM
题目要求如下:

  1. 里面现存有 100 块钱
  2. 如果存钱,就用输入钱数加上先存的钱数, 之后弹出显示余额提示框
  3. 如果取钱,就减去取的钱数,之后弹出显示余额提示框
  4. 如果显示余额,就输出余额
  5. 如果退出,弹出退出信息提示框
    JS实现简易ATM需求

<!DOCTYPE html>
	<html>
		<head>
			<meta charset="utf-8">
			<title></title>
			<style type="text/css">

			</style>

			<script>
				// 里面现存有100块钱
				// 如果存钱,就用输入钱数加上先存的钱数.之后弹出显示余额提示框
				// 如果取钱,就减去取的钱数,之后弹出显示余额提示框
				// 如果显示余额,就输出余额
				// 如果退出,就弹出退出信息提示框
				var now_money = 100;
				var flag = true;	
				while(flag){
					var operate = parseInt(prompt('请输入您要的操作: \n1.存钱 \n2.取钱 \n3.显示余额 \n4.退出'))
					switch(operate){
						//存钱
						case 1:
						var save = parseFloat(prompt('请您输入存的钱数:'))
						now_money += save;
						alert('您现在的钱数是:' + now_money);
						break;
						//取钱
						case 2:
						var withdraw = parseFloat(prompt('请您输入取的钱数:'));
						if ( now_money >= withdraw ) {
							now_money -= withdraw;
							alert('您现在的余额是:' + now_money)
						}
						else {
							alert('您卡里的余额不够哦~')
						}
						break;
						//显示余额
						case 3:
						alert( '您现在的钱数是:'+ now_money );
						break;
						//退出
						case 4:
						alert('您正在退出!')
						default:
						alert('输入有误,请重新输入~')
						break;
					}
				}
			</script>
		</head>
		<body>
		</body>
	</html>

二、求1-100之间所有数的总和与平均值

	<!DOCTYPE html>
	<html>
		<head>
			<meta charset="utf-8">
			<title></title>
			<style type="text/css">

			</style>

			<script>
				//求1-100之间所有数的总和与平均值
				var sum = 0;
				var average = 0;
				for ( i = 1; i <= 100; i++ ){
					//1-100之间所有数的总和
					sum += i;
					//1-100之间所有数的平均值-总数/总个数
					average = sum / 100;
				}
				alert('1-100之间所有数的总和为:' +sum);
				alert('1-100之间所有数的平均值为:' + average);
			</script>
		</head>
		<body>
		</body>
	</html>

三、求1-100之间所有偶数的和

<!DOCTYPE html>
	<html>
		<head>
			<meta charset="utf-8">
			<title></title>
			<style type="text/css">

			</style>

			<script>
				//求1-100之间所有偶数的和
				var sum = 0;
				for ( i = 1; i <= 100; i++ ){
					//1-100之间所有偶数的和
					if ( i % 2 == 0 ) {
						sum += i;
					}
				}
				alert('1-100之间所有偶数的和为:' +sum);
			</script>
		</head>
		<body>
		</body>
	</html>

四、求100以内7的倍数的总和

	<!DOCTYPE html>
	<html>
		<head>
			<meta charset="utf-8">
			<title></title>
			<style type="text/css">

			</style>

			<script>
				//求100以内7的倍数的总和
				var sum = 0;
				for ( i = 1; i < 100; i++ ){
					//100以内7的倍数的总和
					if ( i % 7 == 0 ) {
						sum += i;
					}
				}
				alert('100以内7的倍数的总和为:' +sum);
			</script>
		</head>
		<body>
		</body>
	</html>

五、使用for循环打印矩形

实现效果:

☆☆☆☆☆

☆☆☆☆☆

☆☆☆☆☆

☆☆☆☆☆

	<!DOCTYPE html>
	<html>
		<head>
			<meta charset="utf-8">
			<title></title>
			<style type="text/css">

			</style>

			<script>
				//使用for循环打印矩
				var str = '';
				for ( i = 1; i <= 5; i++ ){        //确定列数为5
					for ( j = 1; j <= 5; j++){     //打印五个✨
						str += '✨';
					}
					str += '\n';                   //换行
					}
				alert(str)
				
			</script>
		</head>
		<body>
		</body>
	</html>

六、使用for循环打印三角形
实现效果:
左上直角三角形

	<!DOCTYPE html>
	<html>
		<head>
			<meta charset="utf-8">
			<title></title>
			<style type="text/css">

			</style>

			<script>
				//使用for循环打印左上直角三角形
				var str = '';
				for ( i = 0; i < 5; i++ ){        //确定列数为5
					for ( j = 0; j <= i; j++){     //打印左上直角三角形
						str += '✨';
					}
					str += '\n';                   //换行
					}
				alert(str)
				
			</script>
		</head>
		<body>
		</body>
	</html>

七、使用for循环打印99乘法表

	<!DOCTYPE html>
	<html>
		<head>
			<meta charset="utf-8">
			<title></title>
			<style type="text/css">

			</style>

			<script>
				//使用for循环打印99乘法表
				var sum='';
				for ( var i = 1; i <= 9; i++ ){      //确定列数为9
					for ( j=1; j <= i; j++){
						sum += j + 'x' + i + '=' + j*i+'\t' ;     
						
					}
					sum += '\n'                     //换行
				}
				console.log(sum)
				
			</script>
		</head>
		<body>
		</body>
	</html>

八、求整数1-100的累加值,但要求跳过所有个位为3的数

	<!DOCTYPE html>
	<html>
		<head>
			<meta charset="utf-8">
			<title></title>
			<style type="text/css">

			</style>

			<script>
				//求整数1-100的累加值,但要求跳过所有个位为3的数
				var sum=0;
				for ( var i = 1; i <= 100; i++ ) {
					if ( i % 10 == 3){
						continue;
					}
					sum += i;
				}
				alert(sum)
				
			</script>
		</head>
		<body>
		</body>
	</html>

九、将数组[ ‘red’, ‘green’, ‘blue’, ‘pink’ ] 转换为字符串,并且用 | 或其他符号分割
输出 : ‘red|green|blue|pink|’

	<!DOCTYPE html>
	<html>
		<head>
			<meta charset="utf-8">
			<title></title>
			<style type="text/css">

			</style>

			<script>
			var arr = ['red', 'green', 'blue', 'pink'];
			var str = '';
			var sep = '|';
			for ( var i = 0; i < arr.length; i++){
				str += arr[i] + sep;
				
			}
			alert(str);
			</script>
		</head>
		<body>
		</body>
	</html>

十、写一个函数,用户输入任意三个不同数字的最大值,并能弹出运算后的结果

	<!DOCTYPE html>
	<html>
		<head>
			<meta charset="utf-8">
			<title></title>
			<style type="text/css">

			</style>

			<script>
				//用户输入任意三个不同数字的最大值,并能弹出运算后的结果
				
				function getMax(arr) {
					for (var i = 0; i < arr.length; i++){
						var max = 0;
						if(max < arr[ i ]){
							max = arr[i];
						}
					}
					return max;
				}
				num1 = parseInt(prompt('请输入第一个数'));
				num2 = parseInt(prompt('请输入第二个数'));
				num3 = parseInt(prompt('请输入第三个数'));
				var newArr = [num1, num2, num3]
				alert('您输入的数的最大数为: ' + getMax(newArr))
			</script>
		</head>
		<body>
		</body>
	</html>

十一、写一个函数,用户输入任意两个数字的任意算术运算(简单的计算器小功能),并能弹出运算后的结果

	<!DOCTYPE html>
	<html>
		<head>
			<meta charset="utf-8">
			<title></title>
			<style type="text/css">
			</style>
			<script>
				//写一个函数,用户输入任意两个数字的任意算术运算(简单的计算器小功能),并能弹出运算后的结果
				function getNum(num1,num2){
					return [parseInt(num1) + parseInt(num2), num1 - num2, num1 * num2, num1 / num2];
				}
				flag = true;
				while(flag){
					prompt_num1 = prompt('请输入第一个数:');
					prompt_num2 = prompt('请输入第二个数:');	
					arr = getNum(prompt_num1, prompt_num2);
					operators = parseInt(prompt('请输入您想要的运算:\n 1. 相加+ \n 2.相减 - \n 3.相乘 * \n 4.相除 / \n' ))
					switch(operators){
						case 1:
						alert(arr[0]);
						break;
						case 2:
						alert(arr[1]);
						break;
						case 3:
						alert(arr[2]);
						break;
						case 4:
						alert(arr[3]);
						break;
						default:
						alert('没有这个运算哦~')
						break;
					}
			}
			</script>
		</head>
		<body>
		</body>
	</html>

十二、用户输入年份,输出当年份2月份的天数

	<!DOCTYPE html>
	<html>
		<head>
			<meta charset="utf-8">
			<title></title>
			<style type="text/css">
			</style>
			<script>
				// 用户输入年份,输出当年份2月份的天数
				function is_leapYear (year) {      //判断是否为闰年
					var flag = false;
					if (( year % 4 == 0 && year % 100 != 0) || year % 400 == 0 ) {
						flag = true;
						}
						return flag;
					}
				//根据年份判断2月份天数
				function backDay() {   
					var year = prompt('请您输入年份:');
					if ( is_leapYear(year)) {
						alert('当前年份是闰年,2月份有29天');
					}
					else {
						alert('当前年份是平年,2月份有28天')
					}
				}
				var  year1 = backDay();
			</script>
		</head>
		<body>
		</body>
	</html>

十三、写一个函数,实现反转任意数组

	<!DOCTYPE html>
	<html>
		<head>
			<meta charset="utf-8">
			<title></title>
			<style type="text/css">
			</style> 
			<script>
				// 写一个函数,实现反转任意数组
				function Reverse(arr) {
					// 声明一个新的数组newArr
					var newArr = [];
					for ( var i = arr.length - 1; i >= 0; i-- ){
						//newArr[newArr.length] 是随数组长度动态变化的,
						//所以可以动态接收来自arr[i] 的赋值
						newArr[newArr.length] = arr[i];
					}
					return newArr;
	}
	var arr1 = Reverse([1,9,3,8,7]);
	alert(arr1)
			</script>
		</head>
		<body>
		</body>
	</html>

十四、写一个函数,实现对数字数组的排序(冒泡排序)

	<!DOCTYPE html>
	<html>
		<head>
			<meta charset="utf-8">
			<title></title>
			<style type="text/css">
			</style> 
			<script>
				// 写一个函数,实现对数字数组的排序(冒泡排序)
				function sort(arr) {
					for (var i = 0; i <= arr.length - 1; i++) {
						for (var j = 0; j <= arr.length - i - 1; j++ ) {
							if (arr[j] > arr[ j + 1]){
								var tmp = arr [j];
								arr[j] = arr[j + 1];
								arr[j + 1] = tmp;
							}
						}
					}
					return arr;
					
					}
				var arr1 = sort([2,1,9,6,7]);
				alert(arr1);	
			</script>
		</head>
		<body>
		</body>
	</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值