JS产生随机数的几个用法详解

JS 产生随机数的几个用法详解

在前端开发中,生成随机数是常见的需求。在 JavaScript 中,我们有很多不同的方式来生成随机数,接下来将详细介绍常见的几种方式。

1. Math.random()方法

Math.random() 方法是 JavaScript 中生成伪随机数的默认方法。可以使用以下代码来生成 0 至 1 之间的随机小数。

const randomNum = Math.random();
console.log(randomNum); // 0.3816937904566245

如果需要生成区间内的随机整数,可以借助简单数学运算来得到结果:

// 生成 1 至 10 之间的整数
const randomInt = Math.floor(Math.random() * 10) + 1;
console.log(randomInt); // 5

以上代码中,Math.floor() 方法取整得到区间内的随机整数,而 * 10 是为了将生成的小数尺度放大十倍,使得可以取到 0 至 9 的整数,最后再加上 1,以得到 1 至 10 的整数。

2. Date.now() 方法

Date.now() 方法返回自 1970 年 1 月 1 日 00:00:00 UTC 经过的毫秒数。可以使用以下代码对生成数进行时间戳运算,来实现在不同时间调用时生成不同的伪随机数。

const randomNum = Date.now() % 100;
console.log(randomNum); // 26

执行结果中得到的数值为当前时间戳的最后两位数字。

3. Crypto.getRandomValues 方法

通过 Crypto 接口调用 Crypto.getRandomValues() 方法可以生成高质量、低伪随机度的随机数。以下是一个简单的使用示例:

const arr = new Uint8Array(1);
window.crypto.getRandomValues(arr);
console.log(arr[0]); // 120

• 首先使用 Uint8Array 构造器来创建一个只包含一个元素的数组;

• 然后使用 window.crypto.getRandomValues() 方法对数组进行赋值,该方法接受一个参数,即要赋值的数组;

• 最后使用数组来存储随机整数,数组中的元素对应于区间内的整数值。

结论

以上是JavaScript中产生随机数的三种常见方法,分别是:Math.random(),Date.now(),Crypto.getRandomValues()。如果需要生成区间内的随机数,可以配合使用一些数学函数来满足需求。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS产生随机数的几个用法详解 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 借助script进行Http跨域请求:JSONP实现原理及代码

    下面是“借助script进行Http跨域请求:JSONP实现原理及代码”的完整攻略。 什么是JSONP? JSONP是一种解决跨域请求的方法,其原理是利用标签的src属性不受同源策略的限制来实现跨域请求。在JSONP中,客户端通过动态创建script标签,向服务端发送一个请求,并指定一个回调函数的名称。服务端接收到请求后,将数据作为参数传递给指定的回调函数,…

    JavaScript 2023年5月27日
    00
  • 一文教会你如何在JavaScript中使用展开运算符

    当我们使用展开运算符时,我们可以把一个数组或对象拆分成多个值来使用。本文将详细讲解如何在JavaScript中使用展开运算符。 展开运算符 展开运算符(…)可以将一个数组或对象拆分成多个值来使用。它的语法如下: // 展开一个数组 const arr = [1, 2, 3]; console.log(…arr); // 1 2 3 // 展开一个对象…

    JavaScript 2023年5月27日
    00
  • vue视图响应式更新详细介绍

    下面我将详细讲解“vue视图响应式更新详细介绍”的完整攻略。 什么是Vue的视图响应式? Vue是一个响应式MVVM框架,通过Vue实现响应式数据绑定。所谓响应式数据绑定就是当数据变化时,视图自动更新。我们可以通过Vue提供的“数据劫持+发布订阅”机制实现数据的响应式更新。当我们修改数据时,Vue会自动更新dom元素。 Vue的响应式数据更新原理 Vue通过…

    JavaScript 2023年6月10日
    00
  • 原生js实现ajax方法(超简单)

    下面是“原生js实现ajax方法(超简单)”的完整攻略。 步骤1:创建XMLHttpRequest对象 在JavaScript中要使用Ajax发送HTTP请求,必须先创建一个XMLHttpRequest对象。该对象提供了向Web服务器发送请求和接收响应的方法。 创建XMLHttpRequest对象: let xmlhttp; if (window.XMLHt…

    JavaScript 2023年5月27日
    00
  • 教你用typescript类型来推算斐波那契

    下面是教你用 TypeScript 类型来推算斐波那契的完整攻略。 一、斐波那契数列的定义 斐波那契数列是指这样一个数列:0、1、1、2、3、5、8、13、21、34、……我们定义 f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)(n>=2,n∈N*)。 二、使用 TypeScript 声明斐波那契数列类型 我们可以使用 TypeScr…

    JavaScript 2023年5月28日
    00
  • JavaScript高级程序设计(第3版)学习笔记9 js函数(下)

    《JavaScript高级程序设计(第3版)学习笔记9 js函数(下)》一文主要讲解了 JavaScript 中函数的进阶应用,包括函数作为对象、闭包、函数自执行等内容,下面是具体的攻略: 1. 函数作为对象 在 JavaScript 中,函数同时也是对象,因此它们可以拥有属性和方法。函数的属性通常是直接在函数对象上定义,而方法则是定义在函数的原型对象上。 …

    JavaScript 2023年5月18日
    00
  • JavaScript简写技巧总结

    JavaScript简写技巧总结 在JavaScript编程中,我们经常需要重复性写出一些代码,而这些代码又过于繁琐,需要减少重复性劳动。同时,还有一些简写技巧,在代码书写过程中可以帮助我们节省时间和代码。下面简要总结一下JavaScript中一些简写技巧。 三目运算符(?) 三目运算符是一种简化代码的方法,可以将普通的if/else语句简写为一行代码。它的…

    JavaScript 2023年6月10日
    00
  • Javascript RegExp source 属性

    JavaScript RegExp的source属性 JavaScript的RegExp对象中的source属性是一个字符串,表示正则表达式的文本。该属性只读,不能被修改。 语法 source属性的语法如下: RegExp.source 示例1:使用source属性获取正则表达式的文本 const pattern = /hello/i; console.lo…

    JavaScript 2023年5月11日
    00
合作推广
合作推广
分享本页
返回顶部