JavaScript基础--内置对象之Math对象

2023-11-12

Math 对象不是构造函数,不需要new,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值,取整、最大值等)可以使用 Math 中的成员。

1. Math对象常用方法

1.1 Max.floor()

Max.floor()   floor表示地板,所以该方法是向下取整,即值会变小,不管后面的小数多大,一律向下取整。

let num=10.2;
console.log(Math.floor(num));  // 10
let num1=10.5;
console.log(Math.floor(num1));  // 10
let num2=10.9;
console.log(Math.floor(num2));  // 10
let num3=-10.9;
console.log(Math.floor(num3));  // -11
let num4=-10.3;
console.log(Math.floor(num4));  // -11

1.2 Max.ceil()

Max.ceil() ceil表示天花板,所以该方法用于向上取整,即值会变大。

let num=10.2;
console.log(Math.ceil(num));  // 11
let num1=10.5;
console.log(Math.ceil(num1));  // 11
let num2=10.9;
console.log(Math.ceil(num2));  // 11
let num3=-10.9;
console.log(Math.ceil(num3));  // -10
let num4=-10.3;
console.log(Math.ceil(num4));  // -10

1.3 Max.round() 

Max.round()  表示四舍五入取整,正数是满5包括5向上取整,否则向下取整;负数是小数部分大于.5向下取整,否则向上取整

let num = 10.2;
console.log(Math.round(num)); // 10
let num1 = 10.5;
console.log(Math.round(num1)); // 11
let num2 = 10.9;
console.log(Math.round(num2)); // 11
let num3 = -10.9;
console.log(Math.round(num3)); // -11
let num4 = -10.5;
console.log(Math.round(num4)); // -10 注意负数的点5是向上取整的
let num5 = -10.3;
console.log(Math.round(num5)); // -10

1.4 Math.max()  / Math.min() 

Math.max()  求最大值, Math.min()  求最小值 

let num1 = 10;
let num2 = 22;
let num3 = 109;
console.log(Math.max(num1, num2, num3));   // 109
console.log(Math.min(num1, num2, num3));   //10

1.5  Math.abs() 

Math.abs()  求绝对值(正数的绝对值是它本身,负数的绝对值是它的相反数,0的绝对值是0)

let num1 = 10;
let num2 = 22.4;
let num3 = -4;
console.log(Math.abs(num1)); // 10
console.log(Math.abs(num2)); // 22.4
console.log(Math.abs(num3)); // 4

2. 随机数方法 random()

random() 方法可以随机返回一个小数,其取值范围是 [0,1),区间的表示方法是左闭右开,即等同于 0 <= x < 1 

我们平时使用random() 方法最多的是得到一个两数之间的随机整数,并且包括这两个数在内:

Math.floor(Math.random() * (max - min + 1)) + min;   // 表示两数之间的随机整数

// 要求:得到一个1-10之间的随机整数
// 为了可以重复使用,此处封装一个函数
function getRandom(min, max) {
 return Math.floor(Math.random() * (max - min + 1)) + min; 
}
console.log(getRandom(1,10));
console.log(getRandom(20,50)); // 得到一个20-50之间的随机整数

3. 案例--猜数字游戏

要求:程序随机生成一个1~10之间的数字,并让用户输入一个数字。 ①如果大于该数字,就提示数字大了,继续猜;②如果小于该数字,就提示数字小了,继续猜;③如果等于该数字,就提示猜对了,结束程序

function getRandom(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}
var num = getRandom(1, 10);  // 将随机获得的1-10里面的数字,赋值给变量num
do {
    var inputNum = parseInt(prompt('请输入一个数字:'));
    if (inputNum > num) {
        alert('数字大了');
    } else if (inputNum < num) {
        alert('数字小了');
    } else {
        alert('你猜对了,真的是太棒了');
    }
} while (inputNum != num)  // 如果没有猜对,则会一直猜下去,直到猜对为止

以上就是Math对象常用的方法,需要和其他内置对象进行区别的是Math不是构造函数,不要使用new关键字,直接使用即可。还有就是对于随机数要明确[0,1),以及如何利用它获取两个整数之间的随机整数。

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

JavaScript基础--内置对象之Math对象 的相关文章

随机推荐

  • Docker swarm 搭建docker高可用集群

    目录 项目名称 基于docker swarm 搭建docker高可用集群 1 网络拓扑图 网络数据流图 2 项目环境 3 项目描述 4 项目步骤 1 规划设计整个集群的架构 网络拓扑 安装7台CentOS 7 6的系统 按照规划配置好每台l
  • rs232转usb驱动_世界上最小的伺服驱动器。

    PEAR 世界上最小的伺服驱动器 用于有刷和无刷电机的微型嵌入式控制器 8 40 Vdc单电源 3 A连续 6 A峰值 CANOpen DS402 DS301 RS232和USB配置 数字霍尔 单端编码器 2x通用输入 1x数字输出尺寸 2
  • dw1000 配置无法通过

    最近在使用DW1000 做UWB项目时 出现过一个问题 配置DW1000一直无法成功 奇怪 之前还好好的 一点点排查确认了SPI配置没有问题 速度也不会太高 最后发现是重新配置工程时错将DW1000的RESET引脚配成输出引脚 把它改回输入
  • TCP的三次握手,四次挥手,面试必会

    目录 一 TCP三次握手 建立连接 二 TCP三次握手细节 三 TCP 四次挥手 断开连接 四 TCP非常重要的协议 一 TCP三次握手 建立连接 握手 单纯就是发一个打招呼的数据 不携带业务信息 那么为什么叫三次握手呢 因为B的中间两次可
  • C++ map的基本操作和使用

    C map的基本操作和使用 1 map简介 map是一类关联式容器 它的特点是增加和删除节点对迭代器的影响很小 除了那个操作节点 对其他的节点都没有什么影响 对于迭代器来说 可以修改实值 而不能修改key 2 map的功能 自动建立Key
  • 【TypeScript】TypeScript中的泛型

    泛型的意义及语法 定义一个函数或类时 有些情况下无法确定其中要使用的具体类型 返回值 参数 属性的类型不能确定 此时泛型便能够发挥作用 举个例子 function test arg any any return arg 上例中 test函数
  • 红队内网渗透神器--CobaltStrike安装教程

    CobaltStrike介绍 CobaltStrike是一款渗透测试神器 被业界人称为CS神器 CobaltStrike分为客户端与服务端 服务端是一个 客户端可以有多个 可被团队进行分布式协团操作 CobaltStrike集成了端口转发
  • 【VS问题已解决】警告被视为错误 - 没有生成“object”文件

    VS问题已解决 警告被视为错误 没有生成 object 文件 目前遇到这个问题主要是因为代码存在不明显的语法错误 在VS生成解决方案的编译阶段之前会检查有没有明显的语法问题 首先是 例如缺少结尾分号 误用中文字符这种最明显问题 在运行之前就
  • 网络协议笔记-网络层-划分子网、IP数据报的分组转发

    1 子网及子网掩码 1 1 为什么划分子网 简单点说 就是IP地址不够用了 互联网的发展太快 IP地址不够分了 两级IP地址的设计不太合理 因为随着网络的增多路由表会变得巨大 书上的总结是这样的 IP地址空间的利用率有时很低 例如A类地址网
  • 使用Python将图片转pdf

    使用Python将图片转pdf 1 效果图 2 源码 参考 今天需要把图片转pdf 发现迅捷pdf转换开始默认带水印了 收费版那算了 那就用Python吧 可单转 可批量转 参考 https blog csdn net qq 5370609
  • AI笔记: 数学基础之正交矩阵与矩阵的QR分解

    正交矩阵 若n阶方阵A满足 A T A E A TA E ATA E 则称A为正交矩阵 简称正交阵 复数域上称为酉矩
  • Vue 框架

    Vue 简介 Vue 是一套用于构建用户界面的渐进式框架 Vue 的核心库只关注视图层 不仅易于上手 还便于与第三方库或既有项目整合 另一方面 当与现代化的工具链以及各种支持类库结合使用时 Vue 也完全能够为复杂的单页应用提供驱动 官方文
  • 家用NAS——6大神奇体验供你享

    NAS这个 网络存储器 它能一站式为你解决有关存储的问题 家用NAS的这6大神奇的体验 不用不知道 用了才知道它的妙 一 强大的手机相册管理软件 市面上很多NAS都配备了相册APP管理软件 通过手机APP 可以将手机内的照片直接备份到NAS
  • Docker介绍

    Docker介绍 Docker 扩展了Linux 容器 Linux Containers 或着说 LXC 通过一个高层次的 API为进程单独提供了一个轻量级的虚拟环境 Docker利用了 LXC cgroups 和Linux 自己的内核 和
  • 通过JS监听input输入框的值来判断手机号

  • 多项式分布的理解概率公式的理解

    多项式分布是二项分布的推广 二项分布 也叫伯努利分布 的典型例子是扔硬币 硬币正面朝上概率为p 重复扔n次硬币 k次为正面的概率即为一个二项分布概率 而多项分布就像扔骰子 有6个面对应6个不同的点数 二项分布时事件X只有2种取值 而多项分布
  • stable diffusion实践操作-安装

    本文专门开一节写安装相关的内容 在看之前 可以同步关注 stable diffusion实践操作 正文 1 秋葉一键安装包 github安装 https github com AUTOMATIC1111 stable diffusion w
  • MyBatis在字段返回为null不返回字段

    原文地址 http blog csdn net zkd12344 article details 53261253 参考地址 http www 360doc com content 15 0608 08 281812 476469535 s
  • 使用HAL库开发STM32:UART基础使用

    文章目录 目的 基础说明与初始化 基础说明 初始化 数据接收和发送 轮询方式 中断方式 DMA方式 其它说明 总结 目的 UART 异步串口 是单片机非常常用的一个功能 一般用作设备或模块间通讯的一种方式 通常所说的232或是485通讯从写
  • JavaScript基础--内置对象之Math对象

    Math 对象不是构造函数 不需要new 它具有数学常数和函数的属性和方法 跟数学相关的运算 求绝对值 取整 最大值等 可以使用 Math 中的成员 1 Math对象常用方法 1 1 Max floor Max floor floor表示地