使用JavaScript写一个网页端的四则运算器

目录

style(内联样式表部分)

body部分

html

script

总的代码

网页演示


style(内联样式表部分)

css 复制代码
 <style>
        body {
            font-family: Arial, sans-serif;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            background-color: #f0f0f0;
        }
        .calculator {
            padding: 20px;
            border: 1px solid #ccc;
            border-radius: 5px;
            background-color: white;
            width: 300px;
        }
        .input-group {
            display: flex;
            flex-direction: row;
            margin-bottom: 10px;
        }
        .input-group label {
            width: 100px;
            text-align: right;
            padding-right: 10px;
        }
        .input-group input {
            flex-grow: 1;
        }
        .result {
            margin-top: 20px;
            text-align: center;
        }
    </style>

设置了元素选择器(body)和很多类选择器。

font-family: 页面使用的字体

display: flex: 使用弹性盒子布局

justify-content: center: 内容居中对齐

align-items: center: 垂直居中对齐

height: 100vh: 高度为视口高度

background-color: 背景颜色

padding: 内边距

border: 边框样式

border-radius: 圆角

background-color: 背景颜色

width: 宽度

flex-direction: row: 子元素水平排列

margin-bottom: 下边距

text-align: right: 文本右对齐

padding-right: 右边距

flex-grow: 1: 填充剩余空间

text-align: 文本居中对齐

body部分

html

css 复制代码
 <div class="calculator">
        <h2>四则运算计算器</h2>
        <div class="input-group">
            <label for="num1">数字 1:</label>
            <input type="number" id="num1" required>
        </div>
        <div class="input-group">
            <label for="operator">运算符:</label>
            <select id="operator">
                <option value="+">+</option>
                <option value="-">-</option>
                <option value="*">*</option>
                <option value="/">/</option>
            </select>
        </div>
        <div class="input-group">
            <label for="num2">数字 2:</label>
            <input type="number" id="num2" required>
        </div>
        <button id="calculateButton">计算</button>
        <div class="result">
            <p>结果: <span id="result"></span></p>
        </div>

定义数字 1 的输入框:

label: 标签(num1)。

input: 输入框,类型为数字(number),要求必填(required)。

定义运算符的选择框:

label: 标签(operator)。

select: 下拉选择框(加减乘除四个选项)。

option: 选项。

定义数字 2 的输入框:

label: 标签(num2)。

input: 输入框,类型为数字(number),要求必填(required)。

提交按钮(button),用于触发计算操作。

定义结果(result)显示区域:

div: 包装元素result。

p: 段落,包含结果显示文本。

span: 用于显示计算结果。

script

css 复制代码
<script>
        // 获取元素引用
        var num1Input = document.getElementById("num1");
        var num2Input = document.getElementById("num2");
        var operatorSelect = document.getElementById("operator");
        var calculateButton = document.getElementById("calculateButton");
        var resultSpan = document.getElementById("result");
    
        // 添加点击事件监听器
        calculateButton.addEventListener('click', function() {
            var num1 = parseFloat(num1Input.value);
            var num2 = parseFloat(num2Input.value);
            var operator = operatorSelect.value;
    
            var result = performCalculation(num1, num2, operator);
            resultSpan.textContent = result;
        });
    
        // 计算函数
        function performCalculation(num1, num2, operator) {
            switch (operator) {
                case '+':
                    return num1 + num2;
                case '-':
                    return num1 - num2;
                case '*':
                    return num1 * num2;
                case '/':
                    if (num2 === 0) {
                        alert("除数不能为零!");
                        return null;
                    }
                    return num1 / num2;
                default:
                    alert("无效的运算符!");
                    return null;
            }
        }
    </script>
css 复制代码
        // 获取元素引用
        var num1Input = document.getElementById("num1");
        var num2Input = document.getElementById("num2");
        var operatorSelect = document.getElementById("operator");
        var calculateButton = document.getElementById("calculateButton");
        var resultSpan = document.getElementById("result");

定义5个变量获取页面上的各个元素引用:

num1Input: 数字 1 的输入框。

num2Input: 数字 2 的输入框。

operatorSelect: 运算符选择框。

calculateButton: 计算按钮。

resultSpan: 显示结果的 span 元素。

css 复制代码
  calculateButton.addEventListener('click', function() {
            var num1 = parseFloat(num1Input.value);
            var num2 = parseFloat(num2Input.value);
            var operator = operatorSelect.value;
    
            var result = performCalculation(num1, num2, operator);
            resultSpan.textContent = result;
        });

添加点击事件监听器:

如果用户点击了button,就将输入的num1赋值给num1,输入的num2赋值给num2,输入的运算符赋值给operator,将result使用performCalculation函数计算出,并将结果更新到页面的结果显示区域。

parseFloat: 将字符串转换为浮点数。

value: 获取输入框的值。

css 复制代码
 // 计算函数
        function performCalculation(num1, num2, operator) {
            switch (operator) {
                case '+':
                    return num1 + num2;
                case '-':
                    return num1 - num2;
                case '*':
                    return num1 * num2;
                case '/':
                    if (num2 === 0) {
                        alert("除数不能为零!");
                        return null;
                    }
                    return num1 / num2;
                default:
                    alert("无效的运算符!");
                    return null;
            }

计算函数:

检测不同的运算符,如果是加减乘就进行对应的运算,如果是除法要特判一下除数不能为0,如果为0就使用alert弹出警告。

如果输入的运算符不是加减乘除中的一种,同样要使用alert发出警告,无效的运算符。

总的代码

css 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>四则运算计算器</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            background-color: #f0f0f0;
        }
        .calculator {
            padding: 20px;
            border: 1px solid #ccc;
            border-radius: 5px;
            background-color: white;
            width: 300px;
        }
        .input-group {
            display: flex;
            flex-direction: row;
            margin-bottom: 10px;
        }
        .input-group label {
            width: 100px;
            text-align: right;
            padding-right: 10px;
        }
        .input-group input {
            flex-grow: 1;
        }
        .result {
            margin-top: 20px;
            text-align: center;
        }
    </style>
</head>
<body>
    <div class="calculator">
        <h2>四则运算计算器</h2>
        <div class="input-group">
            <label for="num1">数字 1:</label>
            <input type="number" id="num1" required>
        </div>
        <div class="input-group">
            <label for="operator">运算符:</label>
            <select id="operator">
                <option value="+">+</option>
                <option value="-">-</option>
                <option value="*">*</option>
                <option value="/">/</option>
            </select>
        </div>
        <div class="input-group">
            <label for="num2">数字 2:</label>
            <input type="number" id="num2" required>
        </div>
        <button id="calculateButton">计算</button>
        <div class="result">
            <p>结果: <span id="result"></span></p>
        </div>
    </div>

    <script>
        // 获取元素引用
        var num1Input = document.getElementById("num1");
        var num2Input = document.getElementById("num2");
        var operatorSelect = document.getElementById("operator");
        var calculateButton = document.getElementById("calculateButton");
        var resultSpan = document.getElementById("result");
    
        // 添加点击事件监听器
        calculateButton.addEventListener('click', function() {
            var num1 = parseFloat(num1Input.value);
            var num2 = parseFloat(num2Input.value);
            var operator = operatorSelect.value;
    
            var result = performCalculation(num1, num2, operator);
            resultSpan.textContent = result;
        });
    
        // 计算函数
        function performCalculation(num1, num2, operator) {
            switch (operator) {
                case '+':
                    return num1 + num2;
                case '-':
                    return num1 - num2;
                case '*':
                    return num1 * num2;
                case '/':
                    if (num2 === 0) {
                        alert("除数不能为零!");
                        return null;
                    }
                    return num1 / num2;
                default:
                    alert("无效的运算符!");
                    return null;
            }
        }
    </script>
</body>
</html>

网页演示

相关推荐
fg_4111 分钟前
无网络安装ionic和运行
前端·npm
理想不理想v2 分钟前
‌Vue 3相比Vue 2的主要改进‌?
前端·javascript·vue.js·面试
酷酷的阿云12 分钟前
不用ECharts!从0到1徒手撸一个Vue3柱状图
前端·javascript·vue.js
微信:1379712058714 分钟前
web端手机录音
前端
齐 飞20 分钟前
MongoDB笔记01-概念与安装
前端·数据库·笔记·后端·mongodb
神仙别闹37 分钟前
基于tensorflow和flask的本地图片库web图片搜索引擎
前端·flask·tensorflow
aPurpleBerry1 小时前
JS常用数组方法 reduce filter find forEach
javascript
GIS程序媛—椰子1 小时前
【Vue 全家桶】7、Vue UI组件库(更新中)
前端·vue.js
DogEgg_0012 小时前
前端八股文(一)HTML 持续更新中。。。
前端·html
ZL不懂前端2 小时前
Content Security Policy (CSP)
前端·javascript·面试