数学不好都不敢看Math...

Math

首先说明一下,本人是前端小学生级别的菜鸡,吐槽的话请口下留情,在评论区指出错误或者补充不足,我会很喜欢,互喷不会进步,相互指点才会。。。。谢谢大家啦

目录

📌不是一种数据类型,是一个内置对象

API预览

这些都是 Math 对象的方法,下面为您解释每个方法的作用:

  • abs(x):返回指定数字的绝对值。例如,Math.abs(-10) 的结果是 10
  • acos(x):返回指定数字的反余弦值(弧度)。例如,Math.acos(0.5) 的结果是 1.0471975511965979
  • acosh(x):返回指定数字的反双曲余弦值。例如,Math.acosh(2) 的结果是 1.3169578969248166
  • asin(x):返回指定数字的反正弦值(弧度)。例如,Math.asin(0.5) 的结果是 0.5235987755982989
  • asinh(x):返回指定数字的反双曲正弦值。例如,Math.asinh(2) 的结果是 1.4436354751788103
  • atan(x):返回指定数字的反正切值(弧度)。例如,Math.atan(1) 的结果是 0.7853981633974483
  • atan2(y, x):返回给定的 X 坐标和 Y 坐标的反正切值(弧度)。例如,Math.atan2(1, 1) 的结果是 0.7853981633974483
  • atanh(x):返回指定数字的反双曲正切值。例如,Math.atanh(0.5) 的结果是 0.5493061443340549
  • cbrt(x):返回指定数字的立方根。例如,Math.cbrt(27) 的结果是 3
  • ceil(x):返回大于或等于指定数字的最小整数。例如,Math.ceil(4.3) 的结果是 5
  • clz32(x):返回一个数字在转为 32 位无符号整数后,前导零的个数。例如,Math.clz32(7) 的结果是 29
  • cos(x):返回指定角度的余弦值。例如,Math.cos(Math.PI) 的结果是 -1
  • cosh(x):返回指定数字的双曲余弦值。例如,Math.cosh(0) 的结果是 1
  • exp(x):返回指定数字的指数值。例如,Math.exp(1) 的结果是 2.718281828459045
  • expm1(x):返回 Math.exp(x) - 1 的值。例如,Math.expm1(1) 的结果是 1.718281828459045
  • floor(x):返回小于或等于指定数字的最大整数。例如,Math.floor(4.9) 的结果是 4
  • fround(x):返回指定数字的单精度浮点数表示。例如,Math.fround(1.337) 的结果是 1.3370000123977661
  • hypot(...args):返回一组数字的平方和的平方根。例如,Math.hypot(3, 4) 的结果是 5
  • imul(x, y):返回两个数的 32 位带符号整数乘法结果。例如,Math.imul(2, 3) 的结果是 6
  • log(x):返回指定数字的自然对数(以 e 为底)。例如,Math.log(Math.E) 的结果是 1
  • log1p(x):返回 Math.log(1 + x) 的值。例如,Math.log1p(Math.E - 1) 的结果是 1
  • log2(x):返回以 2 为底的指定数字的对数。例如,Math.log2(8) 的结果是 3
  • log10(x):返回以 10 为底的指定数字的对数。例如,Math.log10(100) 的结果是 2
  • max(...args):返回一组数字中的最大值。例如,Math.max(10, 5, 8) 的结果是 10
  • min(...args):返回一组数字中的最小值。例如,Math.min(10, 5, 8) 的结果是 5
  • pow(x, y):返回 x 的 y 次幂。例如,Math.pow(2, 3) 的结果是 8
  • random():返回一个 0 到 1 之间的随机数。例如,Math.random() 的结果是 0.456789123
  • round(x):返回指定数字的四舍五入值。例如,Math.round(4.5) 的结果是 5
  • sign(x):返回指定数字的符号(正、负或零)。例如,Math.sign(-10) 的结果是 -1
  • sin(x):返回指定角度的正弦值。例如,Math.sin(Math.PI / 2) 的结果是 1
  • sinh(x):返回指定数字的双曲正弦值。例如,Math.sinh(0) 的结果是 0
  • sqrt(x):返回指定数字的平方根。例如,Math.sqrt(16) 的结果是 4
  • tan(x):返回指定角度的正切值。例如,Math.tan(0) 的结果是 0
  • tanh(x):返回指定数字的双曲正切值。例如,Math.tanh(0) 的结果是 0
  • trunc(x):去除指定数字的小数部分,返回整数部分。例如,Math.trunc(4.9) 的结果是 4

Math.abs(x)

  • 返回指定数字的绝对值。
javascript 复制代码
var result = Math.abs(-10);
console.log(result); // 10

Math.ceil(x)

  • 返回大于或等于指定数字的最小整数。
javascript 复制代码
var result = Math.ceil(4.3);
console.log(result); // 5

Math.floor(x)

  • 返回小于或等于指定数字的最大整数。
javascript 复制代码
var result = Math.floor(4.9);
console.log(result); // 4

Math.round(x)

  • 返回指定数字的四舍五入值。
javascript 复制代码
var result = Math.round(4.5);
console.log(result); // 5

Math.max(...args)

  • 返回一组数字中的最大值。
javascript 复制代码
var result = Math.max(10, 5, 8);
console.log(result); // 10

Math.min(...args)

  • 返回一组数字中的最小值。
javascript 复制代码
var result = Math.min(10, 5, 8);
console.log(result); // 5

Math.pow(x, y)

  • 返回 x 的 y 次幂。
javascript 复制代码
var result = Math.pow(2, 3);
console.log(result); // 8

Math.sqrt(x)

  • 返回指定数字的平方根。
javascript 复制代码
var result = Math.sqrt(16);
console.log(result); // 4

Math.random()

  • 返回一个 0 到 1 之间的随机数。
javascript 复制代码
var result = Math.random();
console.log(result); // 0.456789123

Math.toFixed()

  • 会变成字符串
javascript 复制代码
    // toFixed()  小数保留几位,想要留几位就在括号里面写几 
    console.log(Math.PI.toFixed(2));// '3.14' 
    console.log(typeof Math.PI.toFixed(2));

Math.PI

  • Math.PI 得到的是 π 的值,也就是 3.1415936...
javascript 复制代码
console.log(Math.PI) // 3.141592653589793

因为计算机的计算精度问题,只能得到小数点后 15 位

使用 Math.PI 的时候,是不需要加 () 的

Math.toPrecision()

  • 用于将数字转换为指定精度的字符串表示。该方法接受一个参数,指定返回字符串的总有效位数,包括整数部分和小数部分。
javascript 复制代码
const number = 123.456789;

console.log(number.toPrecision(5)); // 输出 "123.46"
console.log(number.toPrecision(7)); // 输出 "123.4568"
console.log(number.toPrecision(10)); // 输出 "123.456789"

在上述示例中,我们创建一个数字 number,然后使用 toPrecision() 方法将其转换为指定精度的字符串表示。对于每个例子,传递的参数决定了返回字符串的总有效位数。

需要注意的是,toPrecision() 方法会自动进行四舍五入操作,以确保返回的字符串具有指定的精度。

此外,如果传递给 toPrecision() 方法的参数是一个超过数字总位数的值,它将会自动添加零位到整数部分或小数部分,以达到指定的精度。

Math.trunc(x)(ES6)

  • Math.trunc(x) 是 JavaScript 中的数学函数之一,用于将一个数字的小数部分舍去,返回其整数部分。

示例:

javascript 复制代码
console.log(Math.trunc(4.9)); // 输出 4
console.log(Math.trunc(-3.2)); // 输出 -3
console.log(Math.trunc(0.8)); // 输出 0

在上述示例中,Math.trunc() 将传入的数字参数 x 的小数部分去除,并返回整数部分。它会对正数和负数均有效,如果值为正数,则直接向下取整;如果值为负数,则向上取整(即绝对值减小,负号保持)。

需要注意的是,Math.trunc() 只处理数值类型的参数,而非数值类型的参数会被转换为数值类型后再进行截断操作。如果参数无法被转换为数值类型,将返回 NaN。

示例:

javascript 复制代码
console.log(Math.trunc('3.14159')); // 输出 3,字符串被转换为数值再执行 trunc()
console.log(Math.trunc(true)); // 输出 1,布尔值 true 被转换为数值 1 再执行 trunc()
console.log(Math.trunc('hello')); // 输出 NaN,无法将字符串转换为数值

在实际应用中,Math.trunc() 常用于对浮点数进行取整操作,得到其整数部分,而忽略小数部分。

随机色块

javascript 复制代码
    // 1 编写一个函数,获得一个十六进制的随机颜色的字符串(例如:#20CD4F)(0-9a-f)
       function getColor() {
          // 思考:随机颜色->Math.random() 0-1   color:red/#ff0000/rgb(255,255,255)
          // 首先 定义一个数组,用来存储这个0-255之间的这个随机数
          var arr = [];
          // 循环遍历输出任意的三位数,放到数组中
          for (var i = 0; i < 3; i++) {
              arr.push(Math.round(Math.random() * 255));
          }
          console.log(arr);//[65, 0, 103]
          // 把上面数组中的每一项遍历,转换为16进制
          var str = '#';
          for (var i in arr) {
              // str = str + arr[i].toString(16);
              str += arr[i].toString(16);
          }
          return str;
      }
      var res = getColor();
      console.log(res);//#667788
      //给页面中的input增加随机的背景色
      inp.style.background = res; 

取值区间

javascript 复制代码
//2-5的话

//公式   :min+Math.floor(Math.random()*(Max-min))
//想要取到5,那就是
//公式   :min+Math.floor(Math.random()*(Max-min+1))
相关推荐
forwardMyLife26 分钟前
element-plus 的form表单组件之el-radio(单选按钮组件)
前端·javascript·vue.js
fs哆哆38 分钟前
ExcelVBA运用Excel的【条件格式】(二)
linux·运维·服务器·前端·excel
安冬的码畜日常1 小时前
【CSS in Depth 2精译】2.5 无单位的数值与行高
前端·css
ilisi_1 小时前
导航栏样式,盒子模型
前端·javascript·css
吉吉安1 小时前
grid布局下的展开/收缩过渡效果【vue/已验证可正常运行】
前端·javascript·vue.js
梦凡尘1 小时前
Vue3 对跳转 同一路由传入不同参数的页面分别进行缓存
前端·javascript·vue.js
攒了一袋星辰1 小时前
Webpack安装以及快速入门
前端·webpack·node.js
吃饱很舒服1 小时前
kotlin distinctBy 使用
android·java·开发语言·前端·kotlin
柳晓黑胡椒2 小时前
vue3实现多表头列表el-table,拖拽,鼠标滑轮滚动条优化
javascript·vue.js·elementui·el-table
勤劳兔码农2 小时前
从IE到Edge:微软浏览器的演变与未来展望
前端·microsoft·edge