Javascript实现基本运算器
发布时间 - 2026-01-11 02:21:26 点击率:次用Javascript实现一个基本的运算器,具体内容如下

使用表格布局,JS添加事件
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>计算器</title>
</head>
<style>
*{
margin: 0;
padding: 0;
}
table{
width:400px;
height: 600px;
border-collapse: collapse;
margin: auto;
}
.trr{
width: 400px;
height: 100px;
}
.trr1{
width: 400px;
height: 50px;
}
.tdd{ width: 100px;
height: 100px;
border: 1px solid silver;
text-align: center;
line-height: 100px;
}
.btn{
width: 100%;
height: 100%;
font-size: 2.5em;
}
.btn1{
width: 100%;
height: 100%;
font-size: 2.5em;
}
.tdd1{
width: 100px;
height: 50px;
}
.text{
height: 100%;
font-size: 2.5em;
text-align: right;
}
</style>
<body>
<table>
<tr class="trr text1">
<td class="tdd" colspan="4"><input class="text" type="text" disabled value="0" /></td>
</tr>
<tr class="trr1">
<td class="tdd1" colspan="2"><input class="btn1 btn" type="button" value="c"/></td>
<td class="tdd1" colspan="2"><input class="btn1 btn" type="button" value="d"/></td>
</tr>
<tr class="trr">
<td class="tdd"><input class="btn" type="button" value="7"/></td>
<td class="tdd"><input class="btn" type="button" value="8"/></td>
<td class="tdd"><input class="btn" type="button" value="9"/></td>
<td class="tdd"><input class="btn" type="button" value="/"/></td>
</tr>
<tr class="trr">
<td class="tdd"><input class="btn" type="button" value="4"/></td>
<td class="tdd"><input class="btn" type="button" value="5"/></td>
<td class="tdd"><input class="btn" type="button" value="6"/></td>
<td class="tdd"><input class="btn" type="button" value="*"/></td>
</tr>
<tr class="trr">
<td class="tdd"><input class="btn" type="button" value="1"/></td>
<td class="tdd"><input class="btn" type="button" value="2"/></td>
<td class="tdd"><input class="btn" type="button" value="3"/></td>
<td class="tdd"><input class="btn" type="button" value="-"/></td>
</tr>
<tr class="trr">
<td class="tdd"><input class="btn" type="button" value="0"/></td>
<td class="tdd"><input class="btn" type="button" value="."/></td>
<td class="tdd"><input class="btn" type="button" value="+"/></td>
<td class="tdd"><input class="btn" type="button" value="="/></td>
</tr>
</table>
<script>
var obtn=document.getElementsByClassName("btn");
var otext=document.getElementsByClassName("text")[0];
var arr=[];//定义一个数组,向其中存入数字和运算符。
for(var i=0;i<obtn.length;i++){
obtn[i].onclick= function () {
if(!isNaN(this.value)||this.value=="."){ //this:代表鼠标点击的obtn
if(otext.value.indexOf(".")==-1){ //消除重复"."的BUG
if(otext.value.length==0){
if(this.value!="0"){ //----------------------
otext.value+=this.value; //|
} //|
} //|
else if(otext.value.length==1&&otext.value=="0"){//|
otext.value=this.value; //|
} //|
else if(otext.value.length==1&&otext.value!="0"){//初始状态时,若计算器屏幕为"0",
otext.value+=this.value; //实现输入一个非零数字的时候,计算器
} //上的数值替换为输入的非零值
else if(otext.value.length>1){ //|
otext.value+=this.value; //|
} //--------------------
}
else
{
if(this.value!="."){ //消除重复"."的BUG
if(otext.value.length==0){
if(obtn[i].value!="0"){
otext.value+=this.value;
}
}
if(otext.value.length>=1){
otext.value+=this.value;
}
}
}
}
if(this.value=="/"||this.value=="*"||this.value=="+"||this.value=="-"){
if(otext.value!="0"&&otext.value!=""&&otext.value!="-"){
//消除输入重复运算符的BUG,
arr[arr.length]=otext.value; //当输入一个运算符的时候,otext内的value值
arr[arr.length]=this.value; //为""(空),所以判断条件为若otext内的value值不为空
otext.value=""; //则向数字中传值。
} //此时出现无法输入负数值运算的BUG
else if(otext.value==""&&this.value=="-"){ //消除无法输入负数值运算的BUG
otext.value=this.value; //当点击运算符后otext的value值为空,
} //此时判断若this的值为"-",就替换进去。
else if(otext.value=="0"&&this.value=="-"){//此时出现无法执行类似"3--3"的双减法运算BUG,
otext.value=this.value; //因为eval()无法识别有双减的字符串值。
} //若初始时,otext值为"0",并且this的值为
} //"-",则用"-"替换otext中的值。
if(this.value=="="){
if(otext.value.length>=1){ //--------------------
var string=""; //|
if(arr[arr.length-1]=="-"&&otext.value<0){ //→消除无法执行类似"3--3"的双减法运算的BUG
arr[arr.length-1]="+"; //→当输入负数值的时候,判断arr数组中的
otext.value=Math.abs(otext.value); //→末尾值是否为"-",若为"-"则把其改为"+",
} //→并且让otext.value值取绝对值。
arr[arr.length]=otext.value; //|
for(var i=0;i<arr.length;i++){ //|
string+=arr[i]; //|
} //|把存入数组中的数字和运算符遍历存储到一个字符串中,
otext.value=eval(string); //|直接使用eval()方法就可以识别一个的字符串,执行
arr=[]; //|该字符串中的运算
} //|
} //---------------------
if(this.value=="c"){
otext.value="0";
arr=[];
}
if(this.value=="d"){
otext.value=otext.value.substr(0,otext.value.length-1);//每一次删除otext中的末尾值
if(otext.value==""){ //当把otext中的值删除完后,给
otext.value="0"; //otext复值"0".
}
}
}
}
</script>
</body>
</html>
计算器的”c”功能为清屏;”d”功能为删除一个数;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# js
# 运算器
# javascript写的简单的计算器
# 内容很多
# 方法实用
# 推荐
# 简易js代码实现计算器操作
# 用JS写的简单的计算器实现代码
# javascript-简单的计算器实现步骤分解(附图)
# js实现简单计算器
# 网页计算器 一个JS计算器
# js网页版计算器的简单实现
# 纯javascript代码实现计算器功能(三种方法)
# 功能很全的精品JS计算器
# 使用jsp调用javabean实现超简单网页计算器示例
# 运算符
# 值为
# 组中
# 遍历
# 完后
# 具体内容
# 大家多多
# 就可以
# 为空
# 则用
# 鼠标点击
# 若为
# 则把
# 中传
# 无法识别
# 字符串值
# height
# px
# border
# align
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
佛山网站制作系统,佛山企业变更地址网上办理步骤?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
Laravel如何使用Vite进行前端资源打包?(配置示例)
Java垃圾回收器的方法和原理总结
微信h5制作网站有哪些,免费微信H5页面制作工具?
Laravel如何实现用户密码重置功能?(完整流程代码)
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
Android自定义控件实现温度旋转按钮效果
如何快速重置建站主机并恢复默认配置?
Laravel如何使用Sanctum进行API认证?(SPA实战)
油猴 教程,油猴搜脚本为什么会网页无法显示?
网页设计与网站制作内容,怎样注册网站?
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
活动邀请函制作网站有哪些,活动邀请函文案?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
昵图网官网入口 昵图网素材平台官方入口
EditPlus中的正则表达式实战(6)
如何做网站制作流程,*游戏网站怎么搭建?
如何为不同团队 ID 动态生成多个“认领值班”按钮
如何快速查询域名建站关键信息?
魔方云NAT建站如何实现端口转发?
海南网站制作公司有哪些,海口网是哪家的?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环
香港服务器WordPress建站指南:SEO优化与高效部署策略
如何快速登录WAP自助建站平台?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
js实现点击每个li节点,都弹出其文本值及修改
浅谈javascript alert和confirm的美化
高防服务器租用指南:配置选择与快速部署攻略
如何在云主机上快速搭建多站点网站?
轻松掌握MySQL函数中的last_insert_id()
JavaScript Ajax实现异步通信
Android okhttputils现在进度显示实例代码
使用Dockerfile构建java web环境
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
如何在腾讯云服务器上快速搭建个人网站?
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
如何在建站宝盒中设置产品搜索功能?
phpredis提高消息队列的实时性方法(推荐)
如何在IIS服务器上快速部署高效网站?
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
微信小程序制作网站有哪些,微信小程序需要做网站吗?
Laravel怎么使用artisan命令缓存配置和视图
Python文件操作最佳实践_稳定性说明【指导】

