JS實現(xiàn)簡易計算器
用JS實現(xiàn)簡易計算器,供大家參考,具體內(nèi)容如下
首先創(chuàng)建結(jié)構(gòu)和樣式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
body{
margin:0;
padding:0;
background-color: #abcdef;
}
.cal{
width:560px;
height:100px;
margin:0 auto;
padding-top:300px;
}
</style>
</head>
<body>
<div class="cal">
<p>
<input type="text" class="num1" value="1">
<span class="sign">+</span>
<input type="text" class="num2" value="1">
<span>=</span>
<span class="res">2</span>
</p>
<p>
<input type="button" value="+">
<input type="button" value="-">
<input type="button" value="*">
<input type="button" value="/">
</p>
</div>
<script>
</script>
</body>
</html>
然后添加Java script
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
body{
margin:0;
padding:0;
background-color: #abcdef;
}
.cal{
width:560px;
height:100px;
margin:0 auto;
padding-top:300px;
}
</style>
</head>
<body>
<div class="cal">
<p>
<input type="text" class="num1" value="1">
<span class="sign">+</span>
<input type="text" class="num2" value="1">
<span>=</span>
<span class="res">2</span>
</p>
<p>
<input type="button" value="+" class="btn">
<input type="button" value="-" class="btn">
<input type="button" value="*" class="btn">
<input type="button" value="/" class="btn">
</p>
</div>
<script>
var cal=document.querySelector(".cal");
var num1=cal.querySelector(".num1");
var num2=cal.querySelector(".num2");
var sign=cal.querySelector(".sign");
var res=cal.querySelector(".res");
var btns=cal.querySelectorAll(".btn");
btns[0].onclick=add;
btns[1].onclick=subtract;
btns[2].onclick=multiply;
btns[3].onclick=divide;
function add(){
sign.innerHTML="+";
//由于DOM獲取到的值都是字符串形式,因此進(jìn)行操作時需要先轉(zhuǎn)為number類型
res.innerHTML=Number(num1.value)+Number(num2.value);
}
function subtract(){
sign.innerHTML="-";
res.innerHTML=Number(num1.value)-Number(num2.value);
}
function multiply(){
sign.innerHTML="*";
res.innerHTML=Number(num1.value)*Number(num2.value);
}
function divide(){
sign.innerHTML="/";
res.innerHTML=Number(num1.value)/Number(num2.value);
}
</script>
</body>
</html>
代碼的優(yōu)化:
循環(huán)實現(xiàn)綁定
給一個外部接口,用于新增運算
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
body{
margin:0;
padding:0;
background-color: #abcdef;
}
.cal{
width:560px;
height:100px;
margin:0 auto;
padding-top:300px;
}
</style>
</head>
<body>
<div class="cal">
<p>
<input type="text" class="num1" value="1">
<span class="sign">+</span>
<input type="text" class="num2" value="1">
<span>=</span>
<span class="res">2</span>
</p>
<p>
<input type="button" value="+" class="btn" title="add">
<input type="button" value="-" class="btn" title="subtract">
<input type="button" value="*" class="btn" title="multiply">
<input type="button" value="/" class="btn" title="divide">
<input type="button" value="%" class="btn" title="mod">
</p>
</div>
<script>
var cal=document.querySelector(".cal");
var num1=cal.querySelector(".num1");
var num2=cal.querySelector(".num2");
var sign=cal.querySelector(".sign");
var res=cal.querySelector(".res");
var btns=cal.querySelectorAll(".btn");
//給每個按鈕綁定事件
for(var i=0;i<btns.length;i++){
operate(i);
}
//運算函數(shù)
function operate(i){
var op=btns[i].value;//獲取運算
var opName=btns[i].title;//獲取運算名
//綁定事件
btns[i].onclick=function(){
sign.innerHTML=op;
res.innerHTML=operation[opName](Number(num1.value),Number(num2.value));
}
}
var operation={
add:function(n1,n2){
return n1+n2;
},
subtract:function(n1,n2){
return n1-n2;
},
multiply:function(n1,n2){
return n1*n2;
},
divide:function(n1,n2){
return n1/n2;
},
//給一個新增運算的接口
addOperation:function(name,fn){
//如果該運算不存在
if(!this.name){
this[name]=fn;
}
}
}
//新增取余運算
operation.addOperation("mod",function(n1,n2){
return n1%n2;
});
</script>
</body>
</html>
這樣就圓滿完成咯
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
無編譯/無服務(wù)器實現(xiàn)瀏覽器的CommonJS模塊化
這篇文章主要介紹了無編譯/無服務(wù)器實現(xiàn)瀏覽器的CommonJS模塊化,對模塊化感興趣的同學(xué),可以參考下2021-05-05
JavaScript 判斷用戶輸入的郵箱及手機(jī)格式是否正確
JavaScript判斷用戶輸入的郵箱格式是否正確、判斷用戶輸入的手機(jī)號格式是否正確,下面有個不錯的示例,感興趣的朋友可以參考下2013-12-12
JS使用window.requestAnimationFrame()對列表切片進(jìn)行渲染
這篇文章主要為大家介紹了JS使用requestAnimationFrame對列表切片進(jìn)行渲染,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
javascript 判斷字符串是否包含某字符串及indexOf使用示例
js javascript 判斷字符串是否包含某字符串,String對象中查找子字符及indexOf具體使用,感興趣的朋友可以參考下2013-10-10
javascript為按鈕注冊回車事件(設(shè)置默認(rèn)按鈕)的方法
這篇文章主要介紹了javascript為按鈕注冊回車事件(設(shè)置默認(rèn)按鈕)的方法,可實現(xiàn)按下回車鍵觸發(fā)按鈕按下的效果,非常簡單實用,需要的朋友可以參考下2015-05-05

