首页 > 其他分享 >8. 内置对象Math

8. 内置对象Math

时间:2022-12-09 21:13:30浏览次数:37  
标签:内置 console log 对象 pow random abs Math

内置对象 Math 的常见方法

Math 和其他的对象不同,它不是一个构造函数,不需要创建对象。所以我们不需要 通过 new 来调用,而是直接使用里面的属性和方法即可。

Math属于一个工具类,里面封装了数学运算相关的属性和方法。如下:

方法 描述 备注
Math.PI 圆周率 Math对象的属性
Math.abs() 返回绝对值
Math.random() 生成0-1之间的随机浮点数 取值范围是 [0,1)
Math.floor() 向下取整(往小取值)
Math.ceil() 向上取整(往大取值)
Math.round() 四舍五入取整(正数四舍五入,负数五舍六入)
Math.max(x, y, z) 返回多个数中的最大值
Math.min(x, y, z) 返回多个数中的最小值
Math.pow(x,y) 乘方:返回 x 的 y 次幂
Math.sqrt() 开方:对一个数进行开方运算

举例

    var num = -0.6;

    console.log(Math.abs(num));        //取绝对值

    console.log(Math.floor(num));      //向下取整,向小取

    console.log(Math.ceil(num));       //向上取整,向大取

    console.log(Math.round(num));      //四舍五入取整(正数四舍五入,负数五舍六入)

    console.log(Math.random());        //生成0-1之间的随机数

运行结果:

    0.6

    -1

    -0

    -1

    0.6453756205275165

Math.abs():获绝对值

方法定义:返回绝对值。

注意:

  • 参数中可以接收字符串类型的数字,此时会将字符串做隐式类型转换,然后再调用 Math.abs() 方法。

代码举例:

    console.log(Math.abs(2)); // 2
    console.log(Math.abs(-2)); // 2

    // 先做隐式类型转换,将 '-2'转换为数字类型 -2,然后再调用 Math.abs()
    console.log(Math.abs('-2'));

    console.log(Math.abs('hello')); // NaN

Math.random() 方法:生成随机数

方法定义:生成 [0, 1) 之间的随机浮点数

我们来看几个例子。

生成 [0, x) 之间的随机数

    Math.round(Math.random()*x)

生成 [x, y) 之间的随机数

    Math.round(Math.random()*(y-x)+x)

【重要】生成 [x, y]之间的随机整数

也就是说:生成两个整数之间的随机整数,并且要包含这两个整数

这个功能很常用,我们可以将其封装成一个方法,代码实现如下:

    /*
    * 生成两个整数之间的随机整数,并且要包含这两个整数
    */
    function getRandom(min, max) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    }

    console.log(getRandom(1, 10));

举例:随机点名

根据上面的例子,我们还可以再延伸一下,来看看随机点名的例子。

    /*
    * 生成两个整数之间的随机整数,并且要包含这两个整数
    */
    function getRandom(min, max) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    }

    const arr = ['许嵩', '邓紫棋', '毛不易', '解忧邵帅'];
    const index = getRandom(0, arr.length - 1); // 生成随机的index
    console.log(arr[index]); // 随机点名

pow():乘方

如果想计算 a 的 b 次方,可以使用如下函数:

	Math.pow(a, b);

Math的中文是“数学”,pow是“幂”。

举例1:

代码实现:

	var a = Math.pow(3, Math.pow(2, 2));
	console.log(a);

举例2:

代码实现:

	var a = Math.pow(Math.pow(3, 2), 4);
	console.log(a);

sqrt():开方

如果想计算数值a的开二次方,可以使用如下函数:

	 Math.sqrt(a);

sqrt即“square 开方”。比如:

	var a = Math.sqrt(36);

url 编码和解码

URI (Uniform ResourceIdentifiers,通用资源标识符)进行编码,以便发送给浏览器。有效的URI中不能包含某些字符,例如空格。而这URI编码方法就可以对URI进行编码,它们用特殊的UTF-8编码替换所有无效的字符,从而让浏览器能够接受和理解。

    encodeURIComponent();   //把字符串作为 URI 组件进行编码
    decodeURIComponent();   //把字符串作为 URI 组件进行解码

举例:

    var url = "http://www.cnblogs.com/smyhvae/";

    var str = encodeURIComponent(url);
    console.log(str);                           //打印url的编码
    console.log(decodeURIComponent(str));       //对url进行编码后,再解码,还原为url

打印结果:

标签:内置,console,log,对象,pow,random,abs,Math
From: https://www.cnblogs.com/qianfanqf/p/16969907.html

相关文章

  • 6. 对象
    创建自定义对象的几种方法方式一:对象字面量对象的字面量就是一个{}。里面的属性和方法均是键值对:键:相当于属性名。值:相当于属性值,可以是任意类型的值(数字类型、字......
  • 7. 内置对象Date
    内置对象:DateDate对象在实际开发中,使用得很频繁,且容易在细节地方出错,需要引起重视。内置对象Date用来处理日期和时间。需要注意的是:与Math对象不同,Date对象是一......
  • Vue中关于数组与对象修改触发页面更新的机制与原理简析
    Vue中关于数组与对象修改触发页面更新的机制与原理简析相关问题数组使用索引直接赋值与直接修改数组length时,不会触发页面更新。例如:<script>exportdefault{n......
  • Django静态文件配置、form表单与request对象
    目录一、静态文件配置1.编写一个页面2.静态文件3.资源访问4.静态文件资源5.静态文件相关配置二、form表单1.action属性2.method属性三、request对象1.request.method2.re......
  • JavaScript:对象:如何复制一个对象?浅拷贝与深拷贝
    回顾一下,我们对传参的讨论,对象的传参是引用传递,我们传递的是对象数据所在的内存地址;那么无论我们怎么去赋值,所有变量指向的都是同一块内存;如上图所示,无论我去使用哪个变......
  • synchronized的锁对象改变问题(转)
    原文:https://www.jianshu.com/p/f6b3cc21f5d7作者:跨界师 大家都知道synchronized是一个对象锁,所以当对象变化时,锁就会消失,就会没有同步效果。请看下面的问题:package......
  • python基础-常用内置包
      内置包是python自带的一些功能模块,有需求时可以在自己文件中直接导入使用。 1.datetime包  python中的时间包,可以在业务开发中辅助我们处理时间信息;#datetime......
  • JavaScript:对象:如何读取、添加、删除对象的属性?
    如何给对象添加属性?直接对象名.属性名去添加属性直接对象名[属性名]去添加属性,此时属性名得是字符串类型,可以直接引号,也可以用变量名如何读取对象的属性值?这......
  • JavaScript:对象:如何去遍历输出一个对象的属性?语句for-in
    使用for-in的for循环语句,可以去遍历一个对象的属性,这类似于Java的增强for循环;但是注意,这并不能遍历对象的所有属性,有些隐藏的属性,是无法遍历出来的,虽然我们可以通过控制台......
  • Django 聚合分组、F对象的使用、聚合分组增加额外字段的方式
    DjangoQuerySet查询表达式F对象简单理解为可以通过F实现数据库操作,而非在Python内存中操作。通过F对象实现。filter()条件过滤或者对象级别的操作。让数据库,而不是......