Webcourse/04-JavaScript基础/28-内置对象:Math.md

150 lines
3.2 KiB
Markdown
Raw Normal View History

2019-06-15 21:00:07 +08:00
## 内置对象 Math
### 内置对象 Math 的常见方法
| 方法 | 描述 | 备注 |
|:-------------|:-------------|:-------------|
| Math.abs() | **返回绝对值** | |
| Math.floor() | **向下取整**(向小取) | |
| Math.ceil() | **向上取整**(向大取) | |
| Math.round() | 四舍五入取整(正数四舍五入,负数五舍六入) | |
| Math.random() | 生成0-1之间的随机数 | 不包含0和1 |
| Math.max(x, y, z) | 返回多个数中的最大值 | |
| Math.min(x, y, z) | 返回多个数中的最小值 | |
| Math.pow(x,y) | 返回 x 的 y 次幂 | |
| Math.sqrt() | 对一个数进行开方运算 | |
Math 和其他的对象不同,它不是一个构造函数,不需要创建对象。
Math属于一个工具类里面封装了数学运算相关的属性和方法。
**举例**
```javascript
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.random()方法举例:生成 x-y 之间的随机数
生成 0-x 之间的随机数:
```javascript
Math.round(Math.random()*x)
```
生成 x-y 之间的随机数:
```javascript
Math.round(Math.random()*(y-x)+x)
```
2019-12-12 20:28:14 +08:00
### 乘方
如果想计算 `a 的 b 次方`,可以使用如下函数:
```
Math.pow(a, b);
```
Math的中文是“数学”pow是“power 幂”。
**举例1**
![](http://img.smyhvae.com/20180117_1730.png)
代码实现:
```
var a = Math.pow(3, Math.pow(2, 2));
console.log(a);
```
**举例2**
![](http://img.smyhvae.com/20180117_1740.png)
代码实现:
```
var a = Math.pow(Math.pow(3, 2), 4);
console.log(a);
```
### 开方
如果想计算数值a的开二次方可以使用如下函数
```
Math.sqrt(a);
```
sqrt即“square 开方”。比如:
```
var a = Math.sqrt(36);
```
2019-06-15 21:00:07 +08:00
## url 编码和解码
URI (Uniform ResourceIdentifiers,通用资源标识符)进行编码以便发送给浏览器。有效的URI中不能包含某些字符例如空格。而这URI编码方法就可以对URI进行编码它们用特殊的UTF-8编码替换所有无效的字符从而让浏览器能够接受和理解。
```javascript
encodeURIComponent(); //把字符串作为 URI 组件进行编码
decodeURIComponent(); //把字符串作为 URI 组件进行解码
```
举例:
```javascript
var url = "http://www.cnblogs.com/smyhvae/";
var str = encodeURIComponent(url);
console.log(str); //打印url的编码
console.log(decodeURIComponent(str)); //对url进行编码后再解码还原为url
```
打印结果:
![](http://img.smyhvae.com/20180202_1432.png)
## 我的公众号
想学习**代码之外的技能**?不妨关注我的微信公众号:**千古壹号**id`qianguyihao`)。
扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外:
![](http://img.smyhvae.com/20190101.png)