【JavaScript】Math 对象

2023-11-13

Math 对象

Math 对象是 JS 的内置对象,可以直接使用

console.log(typeof Math, Math); // object Math {abs: ƒ, acos: ƒ, …}
常用属性 Math.PI:圆周率 3.141592653589793



常用方法

1. Math.random()[0, 1) 之间的随机数

获取 [x, y) 之间的数值:

Math.random() * (y-x) + x
2. Math.min(a,b):获取最小参数值
  • 如果参数不是 number,会隐式转换,转不了也就比不来,返回 NaN
  • 可以传入 0 ~ n 个参数,不传参返回 Infinity
Math.min(1, 2, 3, 4) // 1

如果要获取数组中的最小值,可以使用 apply 函数 / 扩展运算符 ...

Math.min.apply(null, [5, 2, 6, 4, 9]) // 2
Math.min(...[5, 2, 6, 4, 9]) // 2
3. Math.max(a,b):获取最大参数值
  • 不传参返回 -Infinity
  • 其他参考 min()
4. Math.ceil(x):向上取整
  • 如果参数不是 number,会隐式转换,转不了,则返回 NaN
  • 不传参返回 NaN
Math.ceil(1.1) // 2
Math.ceil(-1.1) // -1
5. Math.floor(x):向下取整
  • 如果参数不是 number,会隐式转换,转不了,则返回 NaN
  • 不传参返回 NaN
Math.floor(1.1) // 1
Math.floor(-1.1) // -2

获取 [x, y] 之间的随机整数:

Math.floor(Math.random() * (y - x + 1)) + x
6. Math.round(x):四舍五入
  • 如果参数不是 number,会隐式转换,转不了,则返回 NaN
  • 不传参返回 NaN
  • 负数的四舍五入的绝对值 == 负数的绝对值四舍五入
Math.round(1.1) // 1
Math.round(-1.1) // -1
7. Math.abs(x):取绝对值
  • 如果参数不是 number,会隐式转换,转不了,则返回 NaN
  • 不传参返回 NaN
Math.abs(1.1) // 1.1
Math.abs(-1.1) // 1.1
8. Math.sin(x):正弦值
Math.sin(Math.PI/6)
9. Math.cos(x):余弦值
10. Math.tan(x):正切值
11. Math.pow(x, y)xy 次方
  • 如果参数不是 number,会隐式转换,转不了,则返回 NaN
  • 传 0 / 1 个参数,返回 NaN
  • x y 支持负数
Math.pow(2, -2) // 0.25
12. Math.sqrt(x)x 的平方根
  • 如果参数不是 number,会隐式转换,转不了,则返回 NaN
  • 不传参返回 NaN
Math.sqrt(4) // 2
四位随机验证码
function unique() {
    let str = "0123456789abcdefghijklmnopqrstuvwsyzABCDEFGHIJKLMNOPQRSTUVWSYZ";
    let newStr = "";
    for (let i = 0; i < 4; i++) { // 可重复的验证码
        newStr += str[Math.floor(Math.random() * str.length)];
    }
    return newStr;
}
console.log(unique());
function unique() {
    let str = "0123456789abcdefghijklmnopqrstuvwsyzABCDEFGHIJKLMNOPQRSTUVWSYZ";
    let newStr = "";
    for (let i = 0; i < 4; i++) {
        let random = Math.floor(Math.random() * str.length);
        if (newStr.indexOf(str[random]) !== -1) { // 不重复的验证码
            i--;
            continue;
        } else {
            newStr += str[random];
        }
    }
    return newStr;
}
console.log(unique());

保留 n 位小数:num.toFixed(n)

会以 string 形式四舍五入成 n 位小数

Math.sin(Math.PI/6).toFixed(2); // 0.50
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【JavaScript】Math 对象 的相关文章

  • ReferenceError:regeneratorRuntime未定义(但在范围内工作)

    我遇到过这种奇怪的情况 ReferenceError regeneratorRuntime is not defined 我已经设法在一个非常小的设置中重现 与同一问题上的类似问题相比 并且还注意到一些奇怪的行为 具体取决于是否使用范围 以
  • socket.io 的良好初学者教程? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为什么 iife 在一个简单的例子中不起作用?

    我不明白为什么函数表达式调用不起作用并抛出错误 你能给我解释一下吗 var a function x alert x function a 1 谢谢大家 任务比我想象的要容易得多 这是因为 JS 将 IIFE 解析为函数的参数调用 这样做时
  • Three.js:缩放几何图形后错误的 BoundingBox

    在我的场景中 我有一个简单的立方体 var test new THREE Mesh new THREE CubeGeometry 10 10 10 new THREE MeshBasicMaterial scene add test 该立方
  • 在新的 Google 协作平台 <嵌入 HTML> 中使用 localStorage 和 IndexedDB 不起作用

    我正在尝试将新的 Google 协作平台用于我开发的网页 但是 我在存储本地数据时遇到了问题 本地文件在 Windows 和 Apple safari chrome 中运行良好 从 Google 协作平台尝试一下 没有什么乐趣 此外 在 s
  • 如何在react-bootstrap中禁用表单提交的

    在下面的代码片段中 我有许多文本类型的输入表单 如果用户点击 我似乎会得到相同的合成事件 就像他们按下提交按钮一样 我想忽略作为表单提交 只允许一个人按下 提交 按钮 我删除了一些表单组以减少示例 在所有情况下 按钮或 ENTER 键 e
  • 带有淘汰赛js的隐形recaptcha

    我正在完成隐形验证码 但我在实现它时遇到问题 谷歌开发人员页面中的代码显示它应该是这样的
  • 在打字稿中导入 json

    我是 typescript 的新手 在我的项目中 我们使用 typescript2 在我的要求之一中 我需要导入 json 文件 所以我创建了 d ts 文件如下 test d ts declare module json const va
  • 将 GMT 时间转换为当地时间

    我以这种格式从我的服务器获取 GMT 时间 Fri 18 Oct 2013 11 38 23 GMT 我的要求是使用Javascript将此时间转换为本地时间 例如 如果用户来自印度 首先我需要采用时区 5 30并将其添加到我的服务器时间并
  • 调整图像大小并将画布旋转 90 度

    这里有很多关于在 js 上使用画布旋转图像的主题 我阅读了其中的大部分内容 但无法找到解决我的问题的方法 我正在接收任何分辨率的图像 来自上传组件 我将其大小调整为 1024x768 如下所示 var canvas document cre
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • 在移动设备上滚动

    这个问题更多的是一个建议研究 我确实希望它对其他人有帮助 并且它不会关闭 因为我不太确定在哪里寻求有关此事的建议 在过去的 6 个月里 我一直在进行移动开发 我有机会处理各种设备上的各种情况和错误 最麻烦的是滚动问题 当涉及到在网站的多个区
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • 如何使用 crypto-js 解密 AES ECB

    我正在尝试将加密数据从 flash 客户端 发送到服务器端的 javascript 在 asp 中作为 jscript 运行 有几个 javascript Aes 库 但它们实际上没有文档记录 我正在尝试使用 crypto js 但无法让代
  • Javascript - 水波纹效果

    我需要 JS 上的脚本 它将以 水波纹 样式更改 images html 抱歉 6MB GIF 文件 http fcuunited ru temp listening2 gif http fcunited ru temp listening
  • Javascript Replace() 和 $1 问题

    我正在尝试创建一个脚本来搜索文本中的模式并在它找到的字符串周围包裹一个标签 shop attributes td each function this html function i html return html replace E 0
  • 从 FileReader 设置背景图像样式

    我正在寻找一种解决方案 允许我从文件上传输入中获取文件并通过设置 document body style backgroundImage 来预览它 以下代码用于在 Image 元素中显示预览 function setImage id tar
  • Jquery - 选择选项后如何获取选项的特定数据类型?

    我将直接跳到标记 然后解释我想要做什么 HTML 选择选项
  • 如何在执行新操作时取消先前操作的执行?

    我有一个动作创建器 它会进行昂贵的计算 并在每次用户输入内容时调度一个动作 基本上是实时更新 但是 如果用户输入多个内容 我不希望之前昂贵的计算完全运行 理想情况下 我希望能够取消执行先前的计算并只执行当前的计算 没有内置功能可以取消Pro
  • Vue.js[vuex] 如何从突变中调度?

    我有一个要应用于 json 对象的过滤器列表 我的突变看起来像这样 const mutations setStars state payload state stars payload this dispatch filter setRev

随机推荐

  • PHP与MySQL程序设计 学习笔记 第十章 处理文件和操作系统

    获取路径的文件名部分 不管文件系统中是否存在该路径 可选参数suffix指定一个后缀名 使返回的文件名忽略该后缀 path usr local text txt print basename path n 输出text txt print
  • 【翻译】 一个新的暂停/休眠的基础设施

    LWN订阅者的好处订阅LWN的主要好处是帮助我们继续出版 但除此之外 订阅者可以立即获得所有的网站内容和获得一些额外的网站功能 请今天就注册吧 作者 Jonathan Corbet 2008年3月19日 在参加会议时 你们的编辑多年来一直注
  • c#一个FTP操作封装类FTPHelper

    参考了网上一些代码 作了一些调整优化 using System using System Collections Generic using System Linq using System Text using System Net us
  • Perfmon监控Windows进程性能

    Perfmon简介 Perfmon Performance Monitor 是一款Windows自带的性能监控工具 提供了图表化的系统性能实时监视器 性能日志和警报管理 通过添加性能计数器 Performance Counter 可以实现对
  • Dell电脑插入耳机不能识别

    https blog csdn net weixin 42800268 article details 89418017 utm source app
  • 2020最新微信小程序学习资源汇总,包括文档、视频、系列教程、开源项目、框架!

    利用国庆这段时间收集的一些微信小程序学习资源 希望能够帮助到大家 持续更新 欢迎投稿 开源项目或者文章博客 来源知乎 https zhuanlan zhihu com p 193101814 目录 官网文档 系列教程 视频 开源项目 小程序
  • JavaScript的window.onload事件的理解

    window onload 的作用 window onload 方法用于在网页加载完毕后立刻执行的操作 即当 HTML 文档加载完毕后 立刻执行某个方法 window onload 通常用于 元素 在页面完全载入后 包括图片 css文件等等
  • RKmedia教学(zbar 二维码识别)

    介绍 要想更好的使用 1126 1109 的硬件资源就必须掌握一套媒体框架 此贴会已一个智慧金融的应用场景 介绍一下 RKmedia 的 VI VO RGA 模块以及 zbar 的使用 应用功能 通过 RGB 摄像头识别二维码 代码 git
  • 存储、嵌入式、通信协议-STM32 FMC原理详解

    推荐关注的博主 https blog csdn net as480133937 category 9188655 html https blog csdn net as480133937 category 11691034 html htt
  • vue初识之路由

    目录 前言 使用步骤 vue代码实例 步骤一 引入js文件 步骤二 创建路由实例 步骤三 创建映射关系 步骤四 将路由实例挂载到vue实例 步骤五 使用路由 总结 前言 Vue Router 是 Vue js 官方的路由管理器 它和 Vue
  • Entry模拟对输入的密码进行验证是否符合规范

    需求 1 密码必须不少于6位 2 密码不能包含中文 3 密码不能有特殊字符 4 密码里至少有一个大写字母 效果如图所示 完整代码如下 from tkinter import import re root Tk root title 密码动态
  • 操作系统4-进程,线程,进程控制——lab4内核线程管理,用户进程管理

    大纲一下 最重要的还是要把知识点串起来 知道每一个后知识点概念出现的原因 进程 进程的概念 进程控制块 进程状态 三状态进程模型 挂起进程模型 线程 为什么引入线程 线程的概念 用户线程 内核线程 进程控制 上下文切换 进程创建fork 进
  • spring 使用 jdbcTemplate 查询 MySQL中 timestamp类型数据不准确的问题

    原因 可能是时区设置问题 解决方法 在数据库连接的url中加上时区的设置 如果使用 springboot 在 application properties 文件中添加 spring datasource url jdbc mysql loc
  • 名称解释:Deployment

    简述 Deployment为Pod和ReplicaSet提供了一个声明式定义 declarative 方法 用来替代以前的ReplicationController来方便的管理应用 典型的应用场景包括 定义Deployment来创建Pod和
  • selenium常用定位元素属性详解

    selenium定位元素详解 1 CSS定位表达式 2 XPath定位表达式 3 XPath定位与CSS定位的比较 4 使用ID定位 5 使用class名称定位 1 CSS定位表达式 css 是一种用于发现HTML或XML等文件样式的前端页
  • Jmeter接口测试、性能测试详细讲解+实战教程,堪称经典!

    目录 导读 1 接口简介 2 接口测试简介 3 环境搭建 4 RESTful风格 5 Json说明 6 Jmeter简介 7 Jmeter环境搭建 8 Jmeter使用 8 1 Jmeter发GET请求 8 2线程组 8 2 1 并发执行
  • BIO、NIO和AIO的区别、三种IO的原理与用法

    目录 IO BIO NIO AIO 区别及联系 各自适用场景 使用方式 IO 什么是IO 它是指计算机与外部世界或者一个程序与计算机的其余部分的之间的接口 它对于任何计算机系统都非常关键 因而所有 I O 的主体实际上是内置在操作系统中的
  • 【信号与系统】零输入响应和自由响应的区别

    课本内容 以下内容来自郑君里 信号与系统 第三版 上册 p61 1 自由响应和零输入响应都满足齐次方程的解 2 然而 它们的系数完全不同 零输入响应的系数仅由起始储能情况决定 而自由响应的系数要同时依从于起始状态和激励信号 3 自由响应由两
  • 战地一的服务器在哪个文件夹,战地1怎么加入服务器 战地1加入服务器方法

    今天小编给大家带来的是一位玩家分享的 战地1 加入服务器方法介绍 不知道怎么加入的玩家 快跟小编一起来看看吧 战地1的网络对战除去行动模式是自动配对或者跟好友进外 其他对战进入服务器的方式有好多种 我估计还有其他玩家不知道 那我就图文指条明
  • 【JavaScript】Math 对象

    Math 对象 Math 对象是 JS 的内置对象 可以直接使用 console log typeof Math Math object Math abs acos 常用属性 Math PI 圆周率 3 141592653589793 常用