js: Math.random生成随机字符串

简介: js: Math.random生成随机字符串

先是 Math.random() 生成 [0, 1) 的数,也就是 0.123312、0.982931之类的,

然后调用 number 的 toString方法将其转换成36进制的,

按照MDN的说法,36进制的转换应该是包含了字母 a~z 和 数字0~9的,

因为这样生成的是 0.89kjna21sa 类似这样的,所以要截取一下小数部分,

即从索引 2 开始截取10个字符就是我们想要的随机字符串了

const str = Math.random().toString(36).substr(2, 10);
console.log(str);   // 'jlj18hr0mu'

参考

JavaScript 奇怪又实用的姿势又增加了六个

相关文章
|
算法 C++ 索引
【算法】——全排列算法讲解
【算法】——全排列算法讲解
794 0
|
8月前
|
Java
【源码】【Java并发】【ReentrantLock】适合中学者体质的ReentrantLock源码阅读
因为本文说的是ReentrantLock源码,因此会默认,大家对AQS有基本的了解(比如同步队列、条件队列大概> 长啥样?)。 不懂AQS的小朋友们,你们好呀!也欢迎先看看这篇
182 13
【源码】【Java并发】【ReentrantLock】适合中学者体质的ReentrantLock源码阅读
|
人工智能 搜索推荐 Android开发
Android系统版本演进:从1.0到最新,见证移动操作系统的蜕变####
本文以Android系统的迭代更新为线索,探讨了自2008年首个版本发布以来,Android在功能、性能、用户体验及安全性方面的显著进步。通过对比各代版本的亮点与改进,揭示了Android如何逐步发展成为全球领先的移动操作系统平台,并预测了未来发展趋势。 ####
939 24
|
存储 移动开发 数据库
HTML5 Web IndexedDB 数据库常用数据存储类型
IndexedDB 支持多种数据存储类型,满足复杂数据结构的存储需求。它包括基本数据类型(如 Number、String、Boolean、Date)、对象(简单和嵌套对象)、数组、Blob(用于二进制数据如图像和视频)、ArrayBuffer 和 Typed Arrays(处理二进制数据)、结构化克隆(支持 Map 和 Set 等复杂对象),以及 JSON 数据。尽管不直接支持非序列化数据(如函数和 DOM 节点),但可以通过转换实现存储。开发者应根据具体需求选择合适的数据类型,以优化性能和使用体验。
|
人工智能 自然语言处理 搜索推荐
【NLP自然语言处理】文本处理的基本方法
【NLP自然语言处理】文本处理的基本方法
|
存储 算法 调度
万字长文!非常详细!操作系统【内存管理】
万字长文!非常详细!操作系统【内存管理】
|
存储 安全 Ubuntu
Linux `sudo apt update`和`sudo apt upgrade`命令的作用和使用方法
Linux `sudo apt update`和`sudo apt upgrade`命令的作用和使用方法
2205 0
Linux `sudo apt update`和`sudo apt upgrade`命令的作用和使用方法
华为手机连不上adb解决方法
1.关闭qq,豌豆荚等一连接usb自动侦测手机的程序。。。 2.安装hisuite软件,这个应该跟相应的版本有关,新版本最好要安装这个软件,否则也可能导致怎么都连接不上 3.打开usb调试功能 4.
5197 0
|
SQL Arthas 网络协议
Java 应用压测性能问题定位经验分享
问题千千万,但只要修练了足够深厚的内功,形成一套属于自己的排查问题思路和打法,再加上一套支撑问题排查的工具,凭借已有的经验还有偶发到来的那一丝丝灵感,相信所有的问题都会迎刃而解。
2607 16
Java 应用压测性能问题定位经验分享
|
设计模式 Java 开发者
springboot-策略和模板模式的思考与实践
前言 在日常的开发过程中,经常会遇到一些复杂的业务场景,那么如何优雅的实现复杂的业务功能,而且使得系统的性能、可靠性、可读性达到最好呢?这里不仅考验着开发者的编程功底,实践能力,还有对局部和全局的把握能力。我们都知道,java 是面向对象编程的语言而非面向过程编程的语言,但是在实际操作中,常常会为了走捷径实现功能,忽略了代码的结构性建设,久而久之项目就是堆砌成屎山,系统性能降低,可读性差,系统的可维护性降低,扩展难度极大。为了解决这样的问题,就需要开发者修炼自己的设计功底,学好并用好设计模式。在本文要谈的就是对策略和模板设计模式使用心得与体会。