当前位置:首页 > JavaScript

js实现四则运算

2026-01-30 20:41:37JavaScript

实现四则运算的基本方法

在JavaScript中实现四则运算(加、减、乘、除)可以通过直接使用运算符或封装函数完成。以下是几种常见实现方式:

直接使用运算符

let a = 10;
let b = 2;

console.log(a + b); // 加法 12
console.log(a - b); // 减法 8
console.log(a * b); // 乘法 20
console.log(a / b); // 除法 5

封装为函数

function calculate(a, b, operator) {
  switch(operator) {
    case '+': return a + b;
    case '-': return a - b;
    case '*': return a * b;
    case '/': return b !== 0 ? a / b : '除数不能为0';
    default: return '无效运算符';
  }
}
console.log(calculate(10, 2, '/')); // 输出5

处理浮点数精度问题

JavaScript的浮点数运算可能存在精度问题,可通过以下方式解决:

使用toFixed方法(注意返回字符串)

let result = 0.1 + 0.2; // 0.30000000000000004
console.log(parseFloat(result.toFixed(1))); // 0.3

放大为整数运算

function add(a, b) {
  const multiplier = Math.pow(10, Math.max(getDecimalLength(a), getDecimalLength(b)));
  return (a * multiplier + b * multiplier) / multiplier;
}

function getDecimalLength(num) {
  return (num.toString().split('.')[1] || '').length;
}

解析数学表达式字符串

若需计算字符串形式的表达式(如"3+5*2"),可通过以下方法实现:

使用eval(注意安全性风险)

let expression = "3+5*2";
console.log(eval(expression)); // 13

安全解析方案(使用Function构造器)

function safeEval(expr) {
  return new Function('return ' + expr)();
}
console.log(safeEval('(2+3)*4')); // 20

实现带优先级的运算

对于需要处理运算符优先级的场景,可参考以下算法思路:

逆波兰表达式算法

function calculate(expression) {
  // 实现中缀表达式转后缀表达式
  // 使用栈处理运算符优先级
  // 计算后缀表达式结果
  // 具体实现需包含完整的词法分析和栈操作
}

第三方库推荐

js实现四则运算

  • math.js:支持复杂表达式和符号计算
  • expr-eval:轻量级表达式求值库
// 使用math.js示例
import * as math from 'mathjs';
console.log(math.evaluate('2 + 3 * (4 - 1)')); // 11

注意事项

  1. 除法运算需处理除零错误
  2. 考虑运算结果的数值范围,避免溢出
  3. 涉及用户输入时应做好输入验证,防止代码注入
  4. 对于金融计算等精度敏感场景,建议使用decimal.js等专业库

标签: js
分享给朋友:

相关文章

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…