当前位置:首页 > JavaScript

js实现单位转化

2026-02-02 22:45:04JavaScript

实现单位转换的方法

使用函数封装转换逻辑

通过定义函数封装不同单位之间的转换逻辑,例如长度、重量、温度等。

// 长度单位转换(米与英尺)
function meterToFeet(meter) {
    return meter * 3.28084;
}

function feetToMeter(feet) {
    return feet / 3.28084;
}

// 温度转换(摄氏与华氏)
function celsiusToFahrenheit(celsius) {
    return (celsius * 9/5) + 32;
}

function fahrenheitToCelsius(fahrenheit) {
    return (fahrenheit - 32) * 5/9;
}

使用对象存储转换关系

将单位转换关系存储在对象中,便于扩展和管理。

const unitConverter = {
    length: {
        meter: {
            feet: (val) => val * 3.28084,
            inch: (val) => val * 39.3701
        },
        feet: {
            meter: (val) => val / 3.28084
        }
    },
    temperature: {
        celsius: {
            fahrenheit: (val) => (val * 9/5) + 32
        }
    }
};

// 调用示例
const metersToFeet = unitConverter.length.meter.feet(5);

动态表单实现交互

结合HTML表单动态实现用户输入的单位转换。

<input type="number" id="inputValue" placeholder="输入数值">
<select id="fromUnit">
    <option value="meter">米</option>
    <option value="celsius">摄氏度</option>
</select>
<select id="toUnit">
    <option value="feet">英尺</option>
    <option value="fahrenheit">华氏度</option>
</select>
<button onclick="convert()">转换</button>
<p id="result"></p>

<script>
function convert() {
    const value = parseFloat(document.getElementById('inputValue').value);
    const fromUnit = document.getElementById('fromUnit').value;
    const toUnit = document.getElementById('toUnit').value;
    let result;

    if (fromUnit === 'meter' && toUnit === 'feet') {
        result = meterToFeet(value);
    } else if (fromUnit === 'celsius' && toUnit === 'fahrenheit') {
        result = celsiusToFahrenheit(value);
    }

    document.getElementById('result').textContent = `结果: ${result}`;
}
</script>

使用第三方库

对于复杂场景,可以使用成熟的单位转换库如convert-units

js实现单位转化

// 安装库:npm install convert-units
import convert from 'convert-units';

// 示例:将5千米转换为英里
const result = convert(5).from('km').to('mi');
console.log(result); // 输出转换结果

注意事项

  • 浮点数精度问题需处理,可用toFixed()限制小数位数。
  • 输入验证确保用户输入为有效数字。
  • 扩展性可通过配置文件或API动态加载单位关系。

标签: 单位js
分享给朋友:

相关文章

js实现图片上传

js实现图片上传

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

js 实现跳转

js 实现跳转

使用 window.location.href 进行跳转 通过修改 window.location.href 可以跳转到指定 URL,浏览器会加载新页面: window.location.hre…

js实现 拖动

js实现 拖动

实现拖动的步骤 HTML 结构 创建一个可拖动的元素和一个放置区域: <div id="draggable" draggable="true">拖动我</div> <d…

js 实现页面刷新

js 实现页面刷新

使用 location.reload() location.reload() 是原生 JavaScript 提供的页面刷新方法。调用该方法会重新加载当前页面,相当于点击浏览器的刷新按钮。 // 基本…

js 实现拖拽

js 实现拖拽

实现拖拽的基本步骤 在JavaScript中实现拖拽功能需要监听几个关键事件:mousedown、mousemove和mouseup。以下是实现的基本逻辑。 监听目标元素的mousedown事件,记…

js 实现图片 放大

js 实现图片 放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性可以实现图片的平滑放大效果。结合 JavaScript 监听鼠标事件控制放大状态: con…