搜索
首页web前端js教程使用 HTML、CSS 和 JavaScript 创建基本计算器

用 JavaScript 创建函数计算器很有趣,并且使用了很多概念,例如 DOM 操作、事件处理、条件逻辑、字符串操作、算术运算、键盘输入集成和用户界面的 CSS 样式。在这篇博文中,我们将深入研究代码,分解每一行以了解其属性和功能。读完本博客后,我们将牢牢掌握计算器的工作原理。

让我们开始吧。

设置 HTML 结构

HTML 很简单,从标准样板开始。下面是index.html

的代码片段

Creating a Basic Calculator Using HTML, CSS and JavaScript

部分,每个部分包含一组按钮。这些部分包括数字 (0-9)、数学运算符 (、-、*、/) 以及其他基本按钮,例如 AC、C、%、= 和 ..

标签链接到外部 JavaScript 文件 script.js,其中定义了计算器的逻辑和功能。该外部文件处理用户交互和计算,使计算器能够按预期执行操作。

这里,显示框显示输入并显示结果,而按钮框则容纳所有计算器按钮。

添加 CSS 进行样式设置

现在,让我们设计我们的计算器,使其具有视觉吸引力且用户友好。

Creating a Basic Calculator Using HTML, CSS and JavaScript

让我们分解一下 CSS 代码。

  1. 包装样式

Creating a Basic Calculator Using HTML, CSS and JavaScript

最小高度:100vh;确保包装器至少占据视口的整个高度。显示屏:柔性;实现灵活的布局,允许其子项对齐。调整内容:居中;使内容水平居中,同时align-items: center;将内容垂直居中。最后,边框:2px纯黑;在包装周围添加边框。

  1. 计算器容器样式:

Creating a Basic Calculator Using HTML, CSS and JavaScript

显示:flex;使计算器容器变得灵活,允许将子元素布置在行或列中。弯曲方向:列;垂直排列子元素。间隙:12px;添加每个部分或元素之间的间距。最后宽度:500px;将计算器的宽度设置为 500px。

  1. 展示盒造型

Creating a Basic Calculator Using HTML, CSS and JavaScript

边框:1px纯黑;为显示框添加边框。内边距:16px;在盒子内部留出空间以提高可读性。文本对齐:右对齐;确保文本右对齐。字体大小:24px;增加字体大小以提高可见性,同时 border-radius: 5px;将盒子的角弄圆。

  1. 按钮容器和按钮样式

Creating a Basic Calculator Using HTML, CSS and JavaScript

这里,按钮容器的样式为 .flex-container,其中 display: flex;为其子元素创建灵活的布局。对齐内容:空间之间;属性均匀分布按钮,按钮之间留有空间,而间隙:8px;确保每个按钮之间有适当的间距,以便更好地对齐。

每个按钮都采用 flex: 1; 样式,这使得它们在一行中占据相同的空间。内边距:16px;在每个按钮内添加空间以提高舒适度,字体大小:20px;确保文本可读。字体粗细:粗体;使文本突出,同时边框:1px纯黑色;在每个按钮周围添加边框。另外,边框半径:8px;按钮的角稍微变圆,光标:指针;当鼠标悬停在其上时,将光标更改为指针。按钮的背景颜色设置为白色,background-color: rgb(255, 255, 255);.

对于“=”按钮,.equal 类使用 flex: 2.5;给它更多的空间,使其宽度是其他按钮的 2.5 倍。当按钮悬停时,button:hover样式将背景颜色更改为灰色,背景颜色:rgb(127, 131, 131);并将文本颜色设置为白色。这种过渡效果通过过渡进行平滑:background-color 0.3s Easy, Color 0.3s Easy;,允许颜色之间有 0.3 秒的淡入淡出。

使用上面的 HTML 和 CSS,我们的计算器如下所示:

Creating a Basic Calculator Using HTML, CSS and JavaScript

现在让我们深入了解主要部分,为我们的计算器赋予生命。
JavaScript 代码片段
Creating a Basic Calculator Using HTML, CSS and JavaScript

让我们分解代码以便更好地理解。

  1. 选择 DOM 元素

Creating a Basic Calculator Using HTML, CSS and JavaScript

displayBox 变量保存对显示框的引用 (

  1. 显示变量和运算符

Creating a Basic Calculator Using HTML, CSS and JavaScript

displayValue 变量保存要在屏幕上显示的当前值,确保计算过程中的准确更新。 lastOperator 变量跟踪最后使用的操作符,防止连续操作符输入等错误。此外,console.log 用于调试目的,特别是记录CalculatorBtns 节点列表以供审查。

  1. 按钮点击事件监听器/循环每个按钮

Creating a Basic Calculator Using HTML, CSS and JavaScript

forEach方法用于循环遍历calculatorBtns集合中的每个按钮。对于每个按钮,innerText属性被分配给buttonValue变量,该变量保存按钮上显示的文本,例如“AC”,“C”,“9”,“ ”等

然后将 onclick 事件侦听器添加到每个按钮。单击按钮时,将执行分配的功能。该函数handleButtonAction(buttonValue) 将按钮的文本(buttonValue) 作为参数。通过传递按钮的值,该函数允许计算器执行正确的操作,例如清除显示、输入数字或执行数学运算。

  1. 处理键盘输入的按键

Creating a Basic Calculator Using HTML, CSS and JavaScript

这使得计算器也可以与键盘一起使用。当按下某个键时,会触发相应按钮的操作。例如,按键盘上的“1”将触发值为“1”的handleButtonAction()函数。

  1. 显示功能

Creating a Basic Calculator Using HTML, CSS and JavaScript

display()函数用当前的displayValue更新显示框(displayBox)的内容。如果displayValue为空,则默认显示“0.0”。

  1. 按钮操作处理程序(主要逻辑):

Creating a Basic Calculator Using HTML, CSS and JavaScript

代码执行几个步骤来更新计算器的显示并处理计算。首先,eval(displayValue) 计算存储在displayValue 中的数学表达式。例如,如果显示“3 5”,则 eval 计算并返回结果,在本例中为 8。

接下来,displayValue = String(result) 将结果转换为字符串并更新displayValue 以在屏幕上显示结果。计算完成后,lastOperator = "" 将lastOperator 重置为空字符串,确保清除任何先前的运算符。最后,display()函数更新显示以显示计算结果。

  1. AC(全部清除)和 C(清除)按钮逻辑

Creating a Basic Calculator Using HTML, CSS and JavaScript

单击“AC”按钮时,代码检查buttonValue是否等于“AC”。如果为 true,它将把 displayValue 重置为空字符串,从而有效地清除整个显示并重置计算器。然后调用 display() 函数以用空值更新显示。

对于“C”按钮,如果buttonValue是“C”,代码使用slice(0, -1)从displayValue中删除最后一个字符。这允许用户删除最后一个输入或字符,并再次调用 display() 函数以相应地更新显示。

  1. 验证运算符

Creating a Basic Calculator Using HTML, CSS and JavaScript

此条件用于验证是否可以根据当前显示的值按下操作符。

条件 ["%", "/", "*", " "].includes(buttonValue) 检查单击的按钮是否是运算符之一 (%, /, *, )。如果该按钮是一个运算符,则下一步检查 if (!displayValue || displayValue === "-") 确保在显示为空或仅包含减号 (-) 时无法按下该运算符。这可以防止出现诸如具有两个连续运算符或以一个运算符开头之类的错误。如果条件为真,该函数将简单返回,并且不会将任何运算符添加到显示中。

  1. 防止连续运算符

Creating a Basic Calculator Using HTML, CSS and JavaScript

此代码块处理连续按下运算符的情况,防止无效输入,例如“ ”或“ -。”

首先,if (["%", "/", "*", " ", "-"].includes(buttonValue)) 检查单击的按钮是否是运算符。然后, const lastCharacter = displayValue.slice(-1) 检索 displayValue 中当前表达式的最后一个字符。

接下来,lastOperator = buttonValue 更新lastOperator 变量以存储当前操作符。如果最后一个字符也是一个运算符(通过 if (["%", "/", "*", " ", "-"].includes(lastCharacter)) 检查),则代码使用 displayValue.slice( 0, -1)。这可确保表达式末尾仅出现一个运算符,并防止添加连续的运算符。

  1. 验证小数点

Creating a Basic Calculator Using HTML, CSS and JavaScript

此代码块确保小数点 (.) 在数字中只能出现一次,从而防止像“3..5.”这样的无效输入

首先,条件 if (buttonValue === ".") 检查单击的按钮是否为小数点。如果是,则继续进行验证。

接下来, const lastOperatorIndex = displayValue.lastIndexOf(lastOperator) 查找最后一个运算符在 displayValue 中的位置。然后, const currentNumberSet = displayValue.slice(lastOperatorIndex) || displayValue 提取最后一个运算符之后的 displayValue 部分,该部分表示当前输入的数字。如果没有运算符,则考虑整个 displayValue。

最后,if (currentNumberSet.includes(".")) 检查提取的数字部分是否已包含小数点。如果是这样,函数会提前返回,从而防止用户输入第二个小数点。这可确保“3.5”等数字有效,但“3..5”等输入无效。

  1. 用新值更新显示:

Creating a Basic Calculator Using HTML, CSS and JavaScript

代码displayValue = displayValue buttonValue;将按下的按钮的值(例如数字或运算符)附加到现有的 displayValue 字符串。当用户与计算器交互时,这会构建当前表达式或数字。

附加按钮值后,调用display()函数来更新显示,确保它反映更新的displayValue。这可确保用户在输入时看到最新的值或表达式。

结论

此 JavaScript 代码处理在计算器中显示值、执行计算、清除输入和验证表达式的逻辑。它适用于按钮点击和键盘输入。主要功能包括按下“=”或“Enter”键时执行计算、处理AC(全部清除)和C(清除最后一个字符)按钮,以及防止无效操作,例如连续运算符或多个小数点。此外,每次操作后都会更新显示,确保用户看到最新的值或表达式。这些功能共同为功能性和交互式计算器奠定了基础。

下面是我的演示链接,因此请随意查看完整代码、克隆存储库或与实时演示进行交互。快乐编码!
GITHUB - [https://github.com/bigyan1997/calculator]
VERCEL - [https://calculator-delta-sepia-91.vercel.app/]

以上是使用 HTML、CSS 和 JavaScript 创建基本计算器的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Python vs. JavaScript:开发人员的比较分析Python vs. JavaScript:开发人员的比较分析May 09, 2025 am 12:22 AM

Python和JavaScript的主要区别在于类型系统和应用场景。1.Python使用动态类型,适合科学计算和数据分析。2.JavaScript采用弱类型,广泛用于前端和全栈开发。两者在异步编程和性能优化上各有优势,选择时应根据项目需求决定。

Python vs. JavaScript:选择合适的工具Python vs. JavaScript:选择合适的工具May 08, 2025 am 12:10 AM

选择Python还是JavaScript取决于项目类型:1)数据科学和自动化任务选择Python;2)前端和全栈开发选择JavaScript。Python因其在数据处理和自动化方面的强大库而备受青睐,而JavaScript则因其在网页交互和全栈开发中的优势而不可或缺。

Python和JavaScript:了解每个的优势Python和JavaScript:了解每个的优势May 06, 2025 am 12:15 AM

Python和JavaScript各有优势,选择取决于项目需求和个人偏好。1.Python易学,语法简洁,适用于数据科学和后端开发,但执行速度较慢。2.JavaScript在前端开发中无处不在,异步编程能力强,Node.js使其适用于全栈开发,但语法可能复杂且易出错。

JavaScript的核心:它是在C还是C上构建的?JavaScript的核心:它是在C还是C上构建的?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc; saninterpretedlanguagethatrunsonenginesoftenwritteninc.1)javascriptwasdesignedAsalightweight,解释edganguageforwebbrowsers.2)Enginesevolvedfromsimpleterterterpretpreterterterpretertestojitcompilerers,典型地提示。

JavaScript应用程序:从前端到后端JavaScript应用程序:从前端到后端May 04, 2025 am 12:12 AM

JavaScript可用于前端和后端开发。前端通过DOM操作增强用户体验,后端通过Node.js处理服务器任务。1.前端示例:改变网页文本内容。2.后端示例:创建Node.js服务器。

Python vs. JavaScript:您应该学到哪种语言?Python vs. JavaScript:您应该学到哪种语言?May 03, 2025 am 12:10 AM

选择Python还是JavaScript应基于职业发展、学习曲线和生态系统:1)职业发展:Python适合数据科学和后端开发,JavaScript适合前端和全栈开发。2)学习曲线:Python语法简洁,适合初学者;JavaScript语法灵活。3)生态系统:Python有丰富的科学计算库,JavaScript有强大的前端框架。

JavaScript框架:为现代网络开发提供动力JavaScript框架:为现代网络开发提供动力May 02, 2025 am 12:04 AM

JavaScript框架的强大之处在于简化开发、提升用户体验和应用性能。选择框架时应考虑:1.项目规模和复杂度,2.团队经验,3.生态系统和社区支持。

JavaScript,C和浏览器之间的关系JavaScript,C和浏览器之间的关系May 01, 2025 am 12:06 AM

引言我知道你可能会觉得奇怪,JavaScript、C 和浏览器之间到底有什么关系?它们之间看似毫无关联,但实际上,它们在现代网络开发中扮演着非常重要的角色。今天我们就来深入探讨一下这三者之间的紧密联系。通过这篇文章,你将了解到JavaScript如何在浏览器中运行,C 在浏览器引擎中的作用,以及它们如何共同推动网页的渲染和交互。JavaScript与浏览器的关系我们都知道,JavaScript是前端开发的核心语言,它直接在浏览器中运行,让网页变得生动有趣。你是否曾经想过,为什么JavaScr

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器