16-内置对象:Number和Math

6,285次阅读
没有评论

共计 2687 个字符,预计需要花费 7 分钟才能阅读完成。

内置对象 Number 的常见方法

Number.isInteger() 判断是否为整数

语法:

布尔值 = Number.isInteger(数字);

toFixed() 小数点后面保留多少位

语法:

字符串 = myNum.toFixed(num);

解释:将数字 myNum 的小数点后面保留 num 位小数(四舍五入),并返回。不会改变原数字。注意,返回结果是字符串

参数 num:指定了小数点后面的位数。

举例:

let num = 3.456;
let num2 = num.toFixed(2);

console.log(num); // 打印结果:3.456
console.log(num2); // 打印结果:3.46

console.log(typeof num); // number
console.log(typeof num2); // string

上方代码中,num2的结果是 3.46,但是请注意,num的类型 Number 型,而 num2 的类型却是 String 型。

另外需要注意的是,数字常量不能直接调 toFixed 方法。比如 1.toFixed(2)在 JS 中会引发语法错误。因为点号(.)被解释为数字字面量的一部分,而不是方法调用的分隔符。为了正确调用 toFixed 方法,可以使用括号或额外的点号。

toFixed()在这一点上,跟前面讲的 toString() 是类似的,推荐的做法是先把数字放到变量中存起来,然后通过变量调用 toFixed()。

内置对象 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:

16- 内置对象:Number 和 Math

代码实现:

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

举例 2:

16- 内置对象:Number 和 Math

代码实现:

	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

打印结果:

16- 内置对象:Number 和 Math

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-09-10发表,共计2687字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)