js简单实现计算器+数组类

js简单实现计算器

先来看效果:
在这里插入图片描述
按键功能和普通的计算器相同,%是取余运算(模运算)。

实现计算器时用到的新知识:

  • 设置输入框只读,不能输入:加上属性 readonly=“readonly”
  • js函数的写法:function 函数名(参数名){函数体} ,因为js变量关键字只有var,所以参数不用写var
  • html的每一个标签可以看做一个类,在函数中获得标签对象用 document.getElementById(“标签id”) ,当然也可以把标签对象当做参数传入,标签调用这些函数,只需要在标签中添加属性:οnclick=“test(this)” ,(点击时调用test这个函数,把自己当做参数传进去)
  • 把字符串当做一条指令的一部分执行:调用方法eval(字符串)即可。

代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>计算器</title>
		<style type="text/css">
			#showid{
				border:solid 1px;
				border-radius: 10px;
				width: 18.75rem;
				text-align: center;
				margin: auto;
				margin-top: 80px;
			}
			input[type=text]{
				margin-top: 10px;
				width: 240px;
				height: 80px;
				font-size: 30px;
				font-weight: bold;
			}
			input[type=button]{
				width:50px;
				height:50px;
				margin: 5px;
				font-size: 30px;
				font-weight: bold;
			}
		</style>
		<script type="text/javascript">
			/* 声明函数 */
			function test(btn){
				var num = btn.value;
				switch(num){
					case "=":
						document.getElementById("inp").value = eval(document.getElementById("inp").value);
						break;
					case "c":
						document.getElementById("inp").value = "";
						break;
					case "del":
						var len = document.getElementById("inp").value.length;
						document.getElementById("inp").value = document.getElementById("inp").value.substr(0,len-1);
						break;
					default:
						document.getElementById("inp").value = document.getElementById("inp").value+num;
						break;
				}
			}
			/* 调用函数 */
			//test();
			
		</script>
	</head>
	<body>
		<div id="showid">
			<input type="text" name="" id="inp" value="" readonly="readonly" /><br/>
			<input type="button" name="" id="" value="c" onclick="test(this)"/>
			<input type="button" name="" id="" value="*" onclick="test(this)"/>
			<input type="button" name="" id="" value="/" onclick="test(this)"/>
			<input type="button" name="" id="" value="del" onclick="test(this)"/>
			<br/>
			<input type="button" name="" id="" value="7" onclick="test(this)"/>
			<input type="button" name="" id="" value="8" onclick="test(this)"/>
			<input type="button" name="" id="" value="9" onclick="test(this)"/>
			<input type="button" name="" id="" value="-" onclick="test(this)"/>
			<br/>
			<input type="button" name="" id="" value="4" onclick="test(this)"/>
			<input type="button" name="" id="" value="5" onclick="test(this)"/>
			<input type="button" name="" id="" value="6" onclick="test(this)"/>
			<input type="button" name="" id="" value="+" onclick="test(this)"/>
			<br/>
			<input type="button" name="" id="" value="1" onclick="test(this)"/>
			<input type="button" name="" id="" value="2" onclick="test(this)"/>
			<input type="button" name="" id="" value="3" onclick="test(this)"/>
			<input type="button" name="" id="" value="=" onclick="test(this)"/>
			<br/>
			<input type="button" name="" id="" value="%" onclick="test(this)"/>
			<input type="button" name="" id="" value="0" onclick="test(this)"/>
			<input type="button" name="" id="" value="." onclick="test(this)"/>
			<input type="button" name="" id="" value="=" onclick="test(this)"/>
			<br/>
		</div>
	</body>
</html>

常用数组操作方法

concat() :合并

作用:合并两个或多个数组。
用法:

var arr = [1,"abc","张三","12"];
var b = ["王二狗","大伟哥"];
var c = "js";
var d = arr.concat(b,c);

join():转化字符串

作用:将数组的内容合并成一个字符串并返回,用传入的符号做分隔符,默认是“,”
用法:

var b = arr.join("-");

pop() : 移除

作用:移除数组最后一个元素并返回值
用法:

var b = arr.pop();

push():添加

作用:在数组最后添加一个元素,并返回长度,元素可以是另一个数组(看做一个元素,即原数组长度加1)。
用法:

var b = arr.push("最后一个");

reverse() : 反转

作用:把数组的元素逆序排列。
用法:

var b = arr.reverse();

shift():移除

作用:移除数组第一个元素并返回值。
用法:

var b = arr.shift();

unshift():添加

作用:添加一个元素在数组第一个位置并返回长度,其他元素一次向后移一位。
用法:

var b = arr.unshift("第一个");

sort():排序

作用:将数组的元素按从小到大排序。
用法:

var b = arr.sort();

splice():移除

作用:移除指定位置的元素,如果需要,可以替换成指定的元素。
用法:

var b = arr.splice(1,3,"a");//"a"参数不写则仅移除下标1,2,3位置的元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值