【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 对象 的相关文章

  • 直观地执行不同的排序算法[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 动态加载css的方法

    我很早就知道 您可以使用 addRule 和 insertRule 动态地将样式规则加载到页面中 具体取决于它是 IE 还是兼容标准的浏览器 但我刚刚发现 在 Chrome 上 一种更通用 对我来说 的方法效果很好 创建一个 style 元
  • 欺骗或禁用页面可见性 API

    页面可见性 API https developer mozilla org en US docs Web Guide User experience Using the Page Visibility API开始普遍用于在选项卡未处于焦点时
  • 重命名从 HTML5 画布创建的图像

    我制作了一个简单的画布并将其另存为图像 我在这段代码的帮助下做到了这一点 var canvas document getElementById mycanvas var img canvas toDataURL image png 并弹出创
  • 组织 jQuery/JavaScript 代码的最佳方式 (2013) [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 问题 这个答案之前已经回答过 但已经
  • Jquery:表单验证不起作用

    我对 Jquery 很陌生 希望你们能帮助我解决这个 jquery 验证问题 一直在尝试验证表单 但它根本没有验证 它接受我在字段中输入的任何内容 无论我设置什么限制 请帮忙 谢谢 这是我的代码
  • 如何使用 JavaScript 访问 runat="server" ASP 元素?

    似乎每个人都在这样做 在代码帖子等中 但我不知道如何 每当我尝试使用 JavaScript 操作 asp 元素时 我都会得到一个 element is null or document is undefined 等等错误 JavaScrip
  • 找出 Jquery ajax 请求被重定向到的位置

    所以 我收到了这个ajax请求 请参阅 金发女郎 大约6英尺高 看起来像这样 ajax url http example com makeThing dataType html type POST data something someot
  • 如何限制注册用户尝试投票两次[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我对 php 编码和网站设计非常陌生 我正在尝试开发一个在线投票系统 只允许注册用户投票 已完成所有操作并且工作正常 但我需要的帮助是
  • 在javascript/jQuery中设置Java的数据结构

    有没有办法在javascript中像java一样创建集合数据结构 唯一集合 对于一组字符串 我只使用值为 true 的对象 var obj obj foo true obj bar true if obj foo foo in set 这基
  • 性能 - String.charAt(0) 与 /^.{1}/

    从概念上讲哪个应该更快 String charAt 0 or 1 regex String charAt 0 必须处理和应用正则表达式 速度测试资源 Paul S https stackoverflow com users 1615483
  • 避免 IE 中因背景图像而出现“混合内容”警告的具体规则是什么?

    这与SSL 和 CSS 背景图像导致的混合内容 https stackoverflow com questions 1548551 ssl and mixed content due to css background images但这个问
  • 如何检查 Node.js 中是否定义了变量?

    我正在用node js 编写一个程序 它实际上是js 我有一个变量 var query azure TableQuery 看起来这行代码有时没有执行 我的问题是 我怎样才能做到这样的条件 if this variable is define
  • 如何使我的网站兼容移动设备和平板电脑? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想让我现有的网站在手机 平板电脑上查看时自动调整 甚至在您在桌面上调整屏幕时自动调整 如果失败的话 如果太难 你有什么建议 我基本上
  • 使用 jquery 选中和取消选中所有复选框

    我正在使用此脚本来选中和取消选中所有复选框 checkall click function var checked this data checked chkall find checkbox attr checked checked th
  • 为车把/余烬定义模板内的数组?

    我在 ember 应用程序中有一个车把模板 它接受一个数组 我目前像这样声明数组 模板 Gd radio input content radioContent value blue JavaScript App IndexControlle
  • 矩形描边上的单击事件

    我想仅在矩形的笔划上添加单击事件 并避免在矩形内部单击 下面是代码 var stage new Kinetic Stage container container width 578 height 200 var layer new Kin
  • 如何使用 javascript 获取 html5 视频的缩略图?

    我找到了根据 URL 获取视频缩略图的 JavaScript 代码 不过 我只在 YouTube 和 Vimeo 上找到了这个 似乎没有人列出如何处理旨在嵌入 html5 视频标签的视频的示例 能做到吗 谢谢 是的 您可以使用视频作为画布的
  • 如何使用 JavaScript 大致计算网站的连接速度?

    如何使用 JavaScript 大致计算网站的连接速度 我想创建一个像这样的javascript小部件 它将计算打开当前打开页面的速度 我想问是否可以仅使用 javascript 来完成此操作以及想法是什么 Update 请注意 页面大小始
  • 如何在javascript中访问请求查询字符串参数?

    我见过许多利用 RegEx 的解决方案 坦率地说 这似乎有些可笑 因为 javascript 是如此通用 必须有一种更简单的方法来访问请求参数 有人可以给我演示一下吗 我发现了一个有用的方法网的深度 http www dotnetbull

随机推荐

  • 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 常用