一、Math 数字
- Math 是 js 的一个内置对象,提供了一堆的方法帮助我们操作 **数字**
①、 random 随机
- `Math.random()` 这个方法是用来生成一个 `0 ~ 1` 之间的随机数
②、round 整数
- `Math.round(变量)` 是将一个小数 **四舍五入** 变成一个整数
③、abs 绝对值
- `Math.abs(变量)` 是返回一个数字的绝对值
④、ceil 天花板
- `Math.ceil(变量)` 是将一个小数 **向上取整** 得到的整数
⑤、floor 地板
- `Math.floor(变量)` 是将一个小数 **向下取整** 的到的整数
⑥、max 最大
- `Math.max(变量 , 变量 ,变量)` 得到的是你传入的几个数字之中最大的那个数字
⑦、min 最小
- `Math.min()` 得到的是你传入的几个数字之中最小的那个数字
⑧、PI π
- `Math.PI` 得到的是 `π` 的值,也就是 `3.1415936...`
**使用 Math.PI 的时候,是不需要加 () 的**
⑨数字转换进制
1. ` toString()` 方法可以在数字转成字符串的时候给出一个进制数
- 语法: `toString(你要转换的进制)`
2. `parseInt()` 方法可以在字符串转成数字的时候把字符串当成多少进制转成十进制
- 语法: `parseInt(要转换的字符串,当作几进制来转换)`
二、Date 时间
- Date 是 js 的一个内置对象,提供了一堆的方法帮助我们操作 **时间**
①、new Date()
- `new Date()` 在不传递参数的情况下是默认返回当前时间
- `new Date()` 传递的参数有多种情况
1. 传递两个数字,第一个表示年,第二个表示月份
```javascript
var time = new Date(2019, 00) // 月份从 0 开始计数,0 表示 1月,11 表示 12月
console.log(time) // Tue Jan 01 2019 00:00:00 GMT+0800 (中国标准时间)
```
2. 传递三个数字,前两个不变,第三个表示该月份的第几天,从 1 到 31
```javascript
var time = new Date(2019, 00, 05)
console.log(time) // Sat Jan 05 2019 00:00:00 GMT+0800 (中国标准时间)
```
3. 传递四个数字,前三个不变,第四个表示当天的几点,从 0 到 23
```javascript
var time = new Date(2019, 00, 05, 22)
console.log(time) // Sat Jan 05 2019 22:00:00 GMT+0800 (中国标准时间)
```
4. 传递五个数字,前四个不变,第五个表示的是该小时的多少分钟,从 0 到 59
```javascript
var time = new Date(2019, 00, 05, 22, 33)
console.log(time) // Sat Jan 05 2019 22:33:00 GMT+0800 (中国标准时间)
```
5. 传递六个数字,前五个不变,第六个表示该分钟的多少秒,从 0 到 59
```javascript
var time = new Date(2019, 00, 05, 22, 33, 55)
console.log(time) // Sat Jan 05 2019 22:33:55 GMT+0800 (中国标准时间)
```
6. 传入字符串的形式
```javascript
console.log(new Date('2019'))
// Tue Jan 01 2019 08:00:00 GMT+0800 (中国标准时间)
console.log(new Date('2019-02'))
// Fri Feb 01 2019 08:00:00 GMT+0800 (中国标准时间)
console.log(new Date('2019-02-03'))
// Sun Feb 03 2019 08:00:00 GMT+0800 (中国标准时间)
console.log(new Date('2019-02-03 13:'))
// Sun Feb 03 2019 13:00:00 GMT+0800 (中国标准时间)
console.log(new Date('2019-02-03 13:13:'))
// Sun Feb 03 2019 13:13:00 GMT+0800 (中国标准时间)
console.log(new Date('2019-02-03 13:13:13'))
// Sun Feb 03 2019 13:13:13 GMT+0800 (中国标准时间)
```
②、getFullYear 得到年
- `getFullYear()` 方式是得到指定字符串中的哪一年
③、getMonth 得到月
- `getMonth()` 方法是得到指定字符串中的哪一个月份
④、getDate 得到天
- `getDate()` 方法是得到指定字符串中的哪一天
⑤、getHours 得到小时
- `getHours()` 方法是得到指定字符串中的哪小时
⑥、getMinutes 分
- `getMinutes()` 方法是得到指定字符串中的哪分钟
⑦、getSeconds
- `getSeconds()` 方法是得到指定字符串中的哪秒钟
⑧、getDay
- `getDay()` 方法是得到指定字符串当前日期是一周中的第几天(周日是 0,周六是 6)
⑨、getTime
- `getTime()` 方法是得到执行时间到 `格林威治时间` 的毫秒数
## 获取时间差
- 是指获取两个时间点之间相差的时间
- 在 js 中是不能用时间直接做 减法 的
- 我们需要一些特殊的操作
- 在编程的世界里面,有一个特殊的时间,是 `1970年01月01日00时00分00秒`
- 这个时间我们叫做 `格林威治时间`
- 所有的编程世界里面,这个时间都是一样的,而且 `格林威治时间` 的数字是 0
- 从 `格林威治时间` 开始,每经过1毫秒,数字就会 + 1
- 所以我们可以获取到任意一个时间节点到 `格林威治时间` 的毫秒数
- 然后在用两个毫秒数相减,就能得到两个时间点之间相差的毫秒数
- 我们在通过这个毫秒数得到准确的时间
三、 RegExp 正则
1、正则表达式,又名 “规则表达式”
- 由我们自己来书写 “规则”,专门用来检测 **字符串** 是否符合 “规则” 使用的
- 我们使用一些特殊的字符或者符号定义一个 “规则公式”,然后用我们定义好的 “规则公式” 去检测字符串是不是合格
2、创建一个正则表达式
①字面量创建 var reg = /abcdefg/
②构造函数 var reg = new RegExp('abcdefg')
3、元字符的意思
### 元字符
- `.` : 匹配非换行的任意字符
- `\` : 转译符号,把有意义的 **符号** 转换成没有意义的 **字符**,把没有意义的 **字符** 转换成有意义的 **符号**
- `\s` : 匹配空白字符(空格/制表符/...)
- `\S` : 匹配非空白字符
- `\d` : 匹配数字
- `\D` : 匹配非数字
- `\w` : 匹配数字字母下划线
- `\W` : 匹配非数字字母下划线
4、限制范围
限定符
- `*` : 前一个内容重复至少 0 次,也就是可以出现 **0 ~ 正无穷** 次
- `+` : 前一个内容重复至少 1 次,也就是可以出现 **1 ~ 正无穷** 次
- `?` : 前一个内容重复 0 或者 1 次,也就是可以出现 **0 ~ 1** 次
- `{n}` : 前一个内容重复 n 次,也就是必须出现 **n** 次
- `{n,}` : 前一个内容至少出现 n 次,也就是出现 **n ~ 正无穷** 次
- `{n,m}` : 前一个内容至少出现 n 次至多出现 m 次,也就是出现 **n ~ m** 次
5、边界符 符合改内容区里的所有限制
- `^` : 表示开头
- `$` : 表示结尾
6、特殊符号
- `()` : 限定一组元素
- `[]` : 字符集合,表示写在 `[]` 里面的任意一个都行
- `[^]` : 反字符集合,表示写在 `[^]` 里面之外的任意一个都行
- `-` : 范围,比如 `a-z` 表示从字母 a 到字母 z 都可以
- `|` : 或,正则里面的或 `a|b` 表示字母 a 或者 b 都可以
7、
标示符
- `i` : 表示忽略大小写
- 这个 i 是写在正则的最后面的
- `/\w/i`
- 就是在正则匹配的时候不去区分大小写
- `g` : 表示全局匹配
- 这个 g 是写在正则的最后面的
- `/\w/g`
- 就是全局匹配字母数字下划线
### test
- `test` 是用来检测字符串是否符合我们正则的标准
- 语法: `正则.test(字符串)`
- 返回值: boolean
### exec
- `exec` 是把字符串中符合条件的内容捕获出来
- 语法: `正则.exec(字符串)`
- 返回值: 把字符串中符合正则要求的第一项以及一些其他信息,以数组的形式返回
### search
- `search` 是查找字符串中是否有满足正则条件的内容
- 语法: `字符串.search(正则)`
- 返回值 : 有的话返回开始索引,没有返回 -1
### match
- `match` 找到字符串中符合正则条件的内容返回
- 语法: `字符串.match(正则)`
- 返回值 :
- 没有标示符 g 的时候,是和 exec 方法一样
- 有标示符 g 的时候,是返回一个数组,里面是匹配到的每一项
### replace
- `replace` 是将字符串中满足正则条件的字符串替换掉
- 语法: `字符串.replace(正则,要替换的字符串)`
- 返回值 : 替换后的字符串