diff --git a/00-前端工具/01-VS Code的使用.md b/00-前端工具/01-VS Code的使用.md
index a89795d..c999ff5 100644
--- a/00-前端工具/01-VS Code的使用.md
+++ b/00-前端工具/01-VS Code的使用.md
@@ -76,7 +76,7 @@ VS Code用得熟不熟,首先就看你是否会用快捷键。以下列出的
- 「Cmd + 左右方向键」:在**整行**之间移动光标(很常用)。注:Win 的快捷键是「Fn + 左右方向键」
-- 「Cmd + Shift + \」:在**代码块**之间移动光标。
+- 「`Cmd + Shift + \`」:在**代码块**之间移动光标。
### 删除操作
diff --git a/03-JavaScript基础/21-内置对象:String.md b/03-JavaScript基础/21-内置对象:String.md
index b1547b0..a92bd00 100644
--- a/03-JavaScript基础/21-内置对象:String.md
+++ b/03-JavaScript基础/21-内置对象:String.md
@@ -162,30 +162,6 @@
console.log(result2); // 打印结果:中
```
-### concat()
-
-`concat()`:字符串的连接。
-
-语法:
-
-```javascript
- 新字符串 = str1.concat(str2); //链接两个字符串
-```
-
-这种方法基本不用,直接把两个字符串相加就好。
-
-是的,你会发现,数组中也有`concat()`方法,用于数组的连接。这个方法在数组中用的挺多的。
-
-代码举例:
-
-```javascript
- var str1 = 'qiangu';
- var str2 = 'yihao';
-
- var result = str1.concat(str2);
- console.log(result); // 打印结果:qianguyihao
-```
-
### indexOf()/lastIndexOf()
`indexOf()/lastIndexOf()`:获取指定字符的索引。
@@ -202,6 +178,8 @@
因此可以得出一个技巧:**如果获取的索引值为0,说明字符串是以查询的参数为开头的**。
+这个方法还可以指定第二个参数,用来 指定开始查找的位置。
+
**代码举例1**:
```javascript
@@ -231,34 +209,76 @@
上方代码中,`indexOf()`方法中携带了两个参数,具体解释请看注释。
-### 字符串的截取(重要)
+### concat()
-字符串的截取有好几个方法,下面分别讲解。
+`concat()`:字符串的连接。
-1、 **slice()**方法:
-
-格式:
+语法:
```javascript
- 字符串 = str.slice(索引1, 索引2); //两个参数都是索引值。
+ 新字符串 = str1.concat(str2); //链接两个字符串
```
-上面的参数,包左不包右。参数举例如下:
+这种方法基本不用,直接把两个字符串相加就好。
-- (2,5) 表示正常,包左不包右。
+是的,你会发现,数组中也有`concat()`方法,用于数组的连接。这个方法在数组中用得挺多的。
-- (2) 表示**从指定的索引位置开始,剪到最后**。
-
-- (-3) 表示从倒数第几个开始,剪到最后.
-
-- (5,2) 表示前面的大,后面的小,返回值为空。
-
-2、**substr()**方法:
-
-格式:
+代码举例:
```javascript
- 字符串 = srt.substr(索引值, 长度);
+ var str1 = 'qiangu';
+ var str2 = 'yihao';
+
+ var result = str1.concat(str2);
+ console.log(result); // 打印结果:qianguyihao
+```
+
+### slice()
+
+`slice()`:从字符串中截取指定的内容。不会修改原字符串,而是将及截取到的内容返回。
+
+语法:
+
+```javascript
+ 字符串 = str.slice(开始索引, 结束索引); //两个参数都是索引值。包左不包右。
+```
+
+解释:上面的参数,包左不包右。参数举例如下:
+
+- (2, 5) 截取时,包左不包右。
+
+- (2) 表示**从指定的索引位置开始,截取到最后**。
+
+- (-3) 表示从倒数第几个开始,截取到最后。
+
+- (1, -1) 表示从第一个截取到倒数第一个。
+
+- (5, 2) 表示前面的大,后面的小,返回值为空。
+
+### substring()
+
+`substring()`:从字符串中截取指定的内容。和`slice()`类似。
+
+语法:
+
+```javascript
+ 字符串 = str.substring(开始索引, 结束索引); //两个参数都是索引值。包左不包右。
+```
+
+`substring()`和`slice()`是类似的。但不同之处在于:
+
+- `substring()`不能接受负值作为参数。如果传递了一个**负值**,则默认使用0。
+
+- `substring()`还会自动调整参数的位置,如果第二个参数小于第一个,则自动交换。比如说, `substring(1, 0)`截取的是第一个字符。
+
+### substr()
+
+`substr()`:从字符串中截取指定的内容。不会修改原字符串,而是将及截取到的内容返回。
+
+语法:
+
+```javascript
+ 字符串 = str.substr(开始索引, 截取的长度);
```
参数举例:
@@ -271,6 +291,54 @@
- 不包括前大后小的情况。
+备注:ECMAscript 没有对 `substr()` 方法进行标准化,因此不建议使用它。
+
+### split() 【重要】
+
+`split()`:将一个字符串拆分成一个数组。
+
+语法:
+
+
+```javascript
+ 数组 = split();
+```
+
+
+备注:`split()`这个方法在实际开发中用得非常多。一般来说,从接口拿到的json数据中,经常会收到类似于`"q, i, a, n"`这样的字符串,前端需要将这个字符串拆分成`['q', 'i', 'a', 'n']`数组,这个时候`split()`方法就排上用场了。
+
+
+**代码举例1**:
+
+```javascript
+
+ var str = "qian, gu, yi, hao"; // 用逗号隔开的字符串
+ var array = str.split(","); // 将字符串 str 拆分成数组,通过逗号来拆分
+
+ console.log(array); // 打印结果是数组:["qian", " gu", " yi", " hao"]
+```
+
+**代码举例2**:
+
+```javascript
+ //split()方法:字符串变数组
+ var str3 = "生命壹号|许嵩|smyhvae";
+
+ console.log(str3);
+
+ console.log(str3.split()); // 无参数,表示:把字符串作为一个元素添加到数组中。
+
+ console.log(str3.split("")); //参数为空字符串,则表示:分隔字符串中每一个字符,分别添加到数组中
+
+ console.log(str3.split("|")); //参数为指定字符,表示:此字符将不会出现在数组的任意一个元素中
+
+ console.log(str3.split("许")); //同理
+```
+
+打印结果:
+
+![](http://img.smyhvae.com/20180202_1503.png)
+
### 一些特殊方法
**1、trim()**:去除字符串前后的空白。
@@ -300,23 +368,6 @@
console.log(str2.replace(/today/gi,"tomorrow")); //这里用到了正则,才能替换所有的today
```
-3、split():字符串变数组。
-
-```javascript
- //split()方法:字符串变数组
- var str3 = "生命壹号|许嵩|smyhvae";
-
- console.log(str3);
- console.log(str3.split()); // 无参数,表示:把字符串作为一个元素添加到数组中。
- console.log(str3.split("")); //参数为空字符串,则表示:分隔字符串中每一个字符,分别添加到数组中
- console.log(str3.split("|")); //参数为指定字符,表示:此字符将不会出现在数组的任意一个元素中
- console.log(str3.split("许")); //同理
-```
-
-打印结果:
-
-![](http://img.smyhvae.com/20180202_1503.png)
-
### 大小写转换
举例:
@@ -326,6 +377,7 @@
//转换成小写
console.log(str.toLowerCase());
+
//转换成大写
console.log(str.toUpperCase());
```
diff --git a/18-推荐链接/01-2019年Web前端最新导航.md b/18-推荐链接/01-2019年Web前端最新导航.md
index b9950b9..adad8c3 100644
--- a/18-推荐链接/01-2019年Web前端最新导航.md
+++ b/18-推荐链接/01-2019年Web前端最新导航.md
@@ -261,6 +261,9 @@ Sass 是成熟、稳定、强大的 CSS 扩展语言。入门文档可以看:<
## 工具
+
+### 综合类
+
- CanIUse:
浏览器兼容性查询。前端同学必须要知道。
@@ -307,6 +310,10 @@ Sass 是成熟、稳定、强大的 CSS 扩展语言。入门文档可以看:<
- OCR文字识别:
+### 图片类
+
+- 图片转base64:
+
## 团队
diff --git a/README.md b/README.md
index ab8f64c..8ce89b5 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,4 @@
-
-
-
## 项目介绍
- 项目地址:
@@ -31,7 +28,7 @@
- 进群要求:少提问、少闲聊、多分享(长期潜水的,就不必了)。
-你也可以关注微信公众号「**千古壹号**」,学习代码之外的技能。扫一扫。你将发现一个全新的世界,而这将是一场美丽的意外:
+你也可以关注微信公众号「**千古壹号**」,学习代码之外的技能。扫一扫,你将发现一个全新的世界,而这将是一场美丽的意外:
![](http://img.smyhvae.com/20190101.png)