js實現(xiàn)一個簡易的計算器
更新時間:2021年04月11日 17:15:08 作者:nqq0921
這篇文章主要為大家詳細(xì)介紹了js實現(xiàn)一個簡易的計算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
利用原生js實現(xiàn)一個簡易的計算器(附詳細(xì)注釋),供大家參考,具體內(nèi)容如下
<!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>
.divs {
width: 500px;
height: 600px;
border: 1px solid #000000;
margin: auto;
}
.divs > input {
width: 460px;
height: 45px;
margin-left: 18px;
margin-top: 10px;
font-size: 30px;
background-color: white;
text-align: right;
}
.divs > div {
width: 100px;
height: 100px;
float: left;
border: 1px solid #000000;
margin-left: 18px;
margin-top: 25px;
font-size: 40px;
line-height: 100px;
text-align: center;
user-select: none;
}
</style>
</head>
<body>
<div class="divs">
<input type="text" value="0" id="input1" disabled />
<div class="block">7</div>
<div class="block">8</div>
<div class="block">9</div>
<div class="block">-</div>
<div class="block">4</div>
<div class="block">5</div>
<div class="block">6</div>
<div class="block">+</div>
<div class="block">1</div>
<div class="block">2</div>
<div class="block">3</div>
<div class="block">*</div>
<div class="block">C</div>
<div class="block">0</div>
<div class="block">=</div>
<div class="block">/</div>
</div>
js:
<script>
// 獲取到所有類名為block的元素
var blocks = document.getElementsByClassName("block");
// 獲取到input
var input = document.getElementById("input1");
// 聲明第一個數(shù)值
var firstValue = 0,
bool = false;
// 聲明運(yùn)算符
var type;
for (var i = 0; i < blocks.length; i++) {
//點擊第i個block
blocks[i].onclick = function () {
//點擊誰,this就指向誰,在這里this指向每次點擊的元素
console.log(this);
//this.innerHTML顯示點擊的div里面的內(nèi)容(比如1,2,3,-,+)
//判斷點擊的為數(shù)字的情況(不是NaN,就是數(shù)字)
if (!isNaN(this.innerHTML)) {
// bool初始為false,當(dāng)bool為false時,可以不斷輸入,當(dāng)bool為true時,input清空為0
if (bool) {
input.value = "0";
bool = false;
}
// 將input中的value累加點擊的內(nèi)容,將它強(qiáng)轉(zhuǎn)為數(shù)字是為了去掉最前面的0,最后再轉(zhuǎn)為字符
input.value = Number(input.value + this.innerHTML).toString();
} else {
//判斷點擊為+ - * /的情況
if (this.innerHTML !== "C" && this.innerHTML !== "=") {
//將第一個數(shù)存到firstValue
firstValue = Number(input.value);
//將運(yùn)算符存到type
type = this.innerHTML;
//將input中的value重置為0
input.value = "0";
} else if (this.innerHTML === "C") { //判斷點擊C的情況
// 全都重置
firstValue = 0;
type = undefined;
input.value = "0";
} else { //判斷點擊=的情況
//根據(jù)運(yùn)算符的類型進(jìn)行運(yùn)算
switch (type) {
case "+":
input.value = (firstValue + Number(input.value)).toString();
break;
case "-":
input.value = (firstValue - Number(input.value)).toString();
break;
case "*":
input.value = (firstValue * Number(input.value)).toString();
break;
case "/":
// 除數(shù)為0時重置input.value
if (Number(input.value) === 0) input.value = "0";
else
input.value = (firstValue / Number(input.value)).toString();
break;
}
//bool為true時,點擊"="后,當(dāng)再次輸入時,input.value為0
bool = true;
}
}
};
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Javascript四舍五入Math.round()與Math.pow()使用介紹
本文為大家介紹下Javascript中的四舍五入Math.round()與Math.pow()的使用,感興趣的朋友不要錯過2013-12-12
在JavaScript中使用mqtt.js的詳細(xì)過程
這篇文章主要介紹了在JavaScript中使用mqtt.js的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04
JavaScript實現(xiàn)多張圖片放大鏡效果示例【不限定圖片尺寸,rem單位】
這篇文章主要介紹了JavaScript實現(xiàn)多張圖片放大鏡效果,結(jié)合實例形式分析了javascript實現(xiàn)不限定圖片尺寸,采用rem單位的多張圖片縮放功能相關(guān)操作技巧,需要的朋友可以參考下2019-05-05
JS限制Textarea文本域字符個數(shù)的具體實現(xiàn)
這篇文章介紹了JS限制Textarea文本域字符個數(shù)的具體實現(xiàn),有需要的朋友可以參考一下2013-08-08
微信小程序下面商品左右滑動上面tab也跟隨變動功能實現(xiàn)
這篇文章主要介紹了小程序下面商品左右滑動上面tab也跟隨變動功能,也就是點擊tab切換下面的商品信息,滑動下面的商品信息tab也進(jìn)行切換,本文給大家分享實現(xiàn)代碼,需要的朋友可以參考下2022-07-07

