内置对象 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)); //取绝对值 0.6
console.log(Math.floor(num)); //向下取整,向小取 -1
console.log(Math.ceil(num)); //向上取整,向大取 -0
console.log(Math.round(num)); //四舍五入取整(正数四舍五入,负数五舍六入) -1
console.log(Math.random()); //生成0-1之间的随机数 0.6453756205275165
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]); // 随机点名
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
打印结果: