JavaScript生成随机数的方法

news/2025/11/11 11:35:01/文章来源:https://www.cnblogs.com/qz85784989/p/19209546

在JavaScript中,创建随机数可以通过内置的 Math 对象实现。我们将会探讨一些生成随机数的方法,它们在不同场合下都显示出色。

基本的随机数生成

// 生成0到1之间的随机数(不包含1)
let randomNumber = Math.random();
​

Math.random() 函数返回一个浮点数,该数值在0(包括0)小于1(但不包括1)之间。这是最直接的生成随机数数值的方法,多用于作为其他随机数生成函数的基础。

生成一个特定范围内的随机数

若要生成指定范围内的随机整数,可以对 Math.random() 的返回值进行适当的转换。

// 生成 a 到 b 之间的随机整数(包括a和b)
function getRandomInt(a, b) {return Math.floor(a + Math.random() * (b - a + 1));
}// 使用例子:生成1到10之间的随机整数
let randomInt = getRandomInt(1, 10);
​

这里,我们利用了 Math.floor() 函数向下取整来确保结果是一个整数。

生成UUID

在生成唯一标识符(如UUID)方面,虽然 Math.random() 不提供足够强的随机性保证生成全局唯一的值,但对于某些不是高度安全敏感的应用场合,通过以下方式可以产生一个简易的UUID:

function generateUUID() {let d = new Date().getTime();let uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {let r = (d + Math.random() * 16) % 16 | 0;d = Math.floor(d / 16);return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);});return uuid;
}// 生成UUID样例
let uuid = generateUUID();
​

此代码段通过替换预定义的字符串模板来生成随意的UUID,其中包含了随机数和当前的时间信息。

使用 crypto 对象

在需要更好随机性的场景下,如密码学应用,可以使用 crypto 对象中的 getRandomValues() 方法,它提供了比 Math.random() 更强的随机性。

function getRandomSecure() {let array = new Uint32Array(1);window.crypto.getRandomValues(array);return array[0];
}// 生成的安全随机数
let secureRandomNumber = getRandomSecure();
​

此方法利用了浏览器提供的加密标准库生成随机数值。Uint32Array 是一个类型数组,用于存储32位无符号整数。

结论

在JavaScript中生成随机数的方法因应用场景而异。简单情形下可以使用 Math.random() 来得到基本的随机数,而对于需要整数范围的随机值则可以通过结合 Math.floor() 和 Math.random() 进行计算。而UUID的生成虽不要求使用加密安全的随机数,但可以通过特定的字符串模式生成满足格式的随机值。最后,需要密码学安全级别的随机数时,应使用 crypto 对象的 getRandomValues() 方法。选择合适的方法将确保您的应用生成的随机数既符合需求又足够安全。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/962206.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Markdown 教程(完整指南)

Markdown 教程(完整指南)🧭 Markdown 教程(完整指南) Markdown 是一种轻量级标记语言,用于快速编写结构化文档如说明书、笔记、README、技术文档、技术博客、公众号等 其次Markdown 是AI输出也是markdown,且输…

2025 年 11 月喷涂加工厂家推荐排行榜,UV喷涂,丝印加工,金属漆,橡胶漆,肤感UV,PU喷涂,自动线塑胶喷涂,美容仪/吹风机喷涂加工公司推荐

行业背景与发展趋势随着消费电子、家电、美容护理等行业的快速发展,塑胶喷涂加工行业迎来了新的发展机遇。特别是在美容仪、吹风机等个人护理设备领域,对表面处理工艺提出了更高要求。UV喷涂、丝印加工、金属漆、橡胶…

实用指南:语义三角论对AI自然语言处理中深层语义分析的影响与启示

实用指南:语义三角论对AI自然语言处理中深层语义分析的影响与启示2025-11-11 11:30 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !i…

2025年商用爆米花燃气炒锅供货厂家权威推荐榜单:燃气加热爆米花加工流水线/全自动燃气爆米花炒锅/全自动爆米花流水线源头厂家精选

在休闲食品市场持续扩大的背景下,商用爆米花燃气炒锅作为核心加工设备,其性能直接影响爆米花的产量、品质与生产成本。市场数据显示,采用自动化燃气炒锅的爆米花生产线,其生产效率较传统设备可提升30%以上,同时能…

2025年深圳第三方软件测试资质机构权威推荐榜单:软著测试报告/高企软件测试报告/软著检测报告源头机构精选

在数字化转型加速的当下,软件质量已成为企业核心竞争力的关键要素。第三方软件测试作为保障软件产品质量的重要环节,其专业性与权威性直接影响软件的最终表现。市场数据显示,2025年深圳软件测试服务市场需求同比增长…

基于Simulink的扩频通信系统仿真设计与实现

一、系统架构与核心模块设计系统模型框架 典型直接序列扩频(DSSS)系统包含以下模块:信源生成:Bernoulli二进制序列(1kb/s) 扩频码生成:8阶m序列(255kb/s) BPSK调制:载波频率510kHz 信道模型:高斯白噪声(SN…

vue3 页面导入某一个文件夹下的所有图片

vue3 页面导入某一个文件夹下的所有图片// 1. 导入所有静态图标(构建时确定) const iconModules = import.meta.glob(@/assets/icons/*.{png,jpg,jpeg,gif,svg}, { eager: true }) // 导入的是assets文件下的icons文…

2025 年 11 月传感器厂家推荐排行榜,压力传感器,温度传感器,位移传感器,光电传感器公司推荐,精准监测与稳定性能深度解析

在工业自动化、智能制造和物联网技术快速发展的今天,传感器作为信息采集和系统控制的核心部件,其性能与可靠性直接关系到整个系统的运行效率。压力传感器、温度传感器、位移传感器和光电传感器等广泛应用于工业控制、…

模糊控制实现平行自动泊车

用 模糊控制实现平行自动泊车。 整套代码包含:车辆建模 → 模糊控制器设计 → 路径跟踪 → 动画可视化1 系统总体思路车辆模型:经典自行车模型(阿克曼转向) 传感器:仅需定位(x,y,θ),可扩展超声/视觉 控制输入…

2025年知名的电伴热带厂家最新推荐排行榜

2025年知名的电伴热带厂家最新推荐排行榜行业背景与市场趋势电伴热系统作为一种高效、节能的管道保温解决方案,近年来在石油化工、建筑供暖、食品医药等领域得到了广泛应用。根据《2024-2029全球电伴热系统市场报告》…

利用Figma进行微信小程序原型设计

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 年 11 月传感器厂家推荐排行榜,压力传感器,温度传感器,位移传感器,光电传感器,工业自动化传感器公司优选

随着工业4.0和智能制造的深入推进,传感器作为工业自动化系统的核心感知单元,其技术水平和产品质量直接影响整个系统的稳定性和精度。在2025年的市场环境下,压力传感器、温度传感器、位移传感器、光电传感器等工业自…

2025年比较好的机边粉碎机厂家最新推荐排行榜

2025年比较好的机边粉碎机厂家最新推荐排行榜行业背景与市场趋势随着全球制造业的持续升级和智能化转型,塑料加工行业对高效、节能、智能化的机边粉碎机需求呈现快速增长态势。根据《2024-2025全球塑料机械市场分析报…

高性价比之选:10款成本可控的项目管理工具实测与推荐

重新定义“性价比”——成本可控不等于功能妥协​​ 在IT预算日益精细化的今天,CIO和IT决策者们面临的核心挑战不再是“有没有工具可用”,而是“如何用合理的成本,获取最大化的业务价值”。高性价比绝非单纯追求最低…

开源能源管理系统:赋能可持续能源转型的 “透明化引擎”

在全球 “双碳” 目标与能源成本攀升的双重驱动下,无论是工业企业、商业建筑还是普通家庭,都亟需通过精细化的能源管理降低能耗、提升效率。传统闭源能源管理系统(EMS)往往面临成本高昂、定制化难、数据 “黑箱” …

2025年评价高的船舶高压直流继电器行业内口碑厂家排行榜

2025年评价高的船舶高压直流继电器行业内口碑厂家排行榜行业背景与市场趋势船舶高压直流继电器作为现代船舶电力系统的核心部件,在保障船舶电力安全、稳定运行方面发挥着不可替代的作用。随着全球航运业向绿色化、智能…

2025 年 11 月膜结构厂家权威推荐榜单:膜结构车棚,景观膜结构,体育看台,污水池加盖,球场建造工程公司精选

膜结构作为一种创新的建筑形式,凭借其轻质高强、造型灵活、耐久性好等优势,在体育场馆、交通设施、环保工程等领域的应用日益广泛。随着材料科学和计算技术的进步,膜结构工程在找形分析、荷载计算和材料选择方面都取…

时序数据库 IoTDB 集成 MyBatisPlus,告别复杂编码,简化时序数据 ORM 开发

代码简洁、高效开发,让你的时序数据应用构建更“丝滑”!在物联网后台与服务模块的开发过程中,复杂编码与重复操作始终是开发团队难以绕开的挑战,不仅增加额外工作量,也抬高了系统的长期维护成本。 为有效缓解这一…

总结复习:动态规划

动态规划方法总结 关于状态设计 直接法 一部分普通简单的动态规划问题都可以直接按照题目要求设计状态,然后后续再考虑优化。一般在不太知道要设什么的情况下可以先尝试直接法想一想。比较普遍,不举例了。 转化规约 …

大模型json输出的系统提示词

大模型json输出的系统提示词The output should be formatted as a JSON instance that conforms to the JSON schema below.\n\nAs an example, for the schema {\"properties\": {\"foo\": {\&qu…