diff --git a/00-前端工具/01-VS Code的使用.md b/00-前端工具/01-VS Code的使用.md
index 1b7f303..154532e 100644
--- a/00-前端工具/01-VS Code的使用.md
+++ b/00-前端工具/01-VS Code的使用.md
@@ -805,6 +805,9 @@ css 颜色管理。
### vscode-pigments
+### 颜色标注
+
+
css 颜色高亮显示。
## 八、主题插件
@@ -821,6 +824,7 @@ css 颜色高亮显示。
* `SynthWave '84`
+
## 最后一段
如果你有什么推荐的 VS Code 插件,欢迎留言。
@@ -838,3 +842,5 @@ css 颜色高亮显示。
- [https://segmentfault.com/a/1190000012811886](https://segmentfault.com/a/1190000012811886)
- [「Vscode」打造类 sublime 的高颜值编辑器](https://idoubi.cc/2019/07/08/vscode-sublime-theme/)
+
+- [Mac Vscode快捷键](https://lsqy.tech/2020/03/14/20200314Mac-Vscode%E5%BF%AB%E6%8D%B7%E9%94%AE/)
\ No newline at end of file
diff --git a/04-JavaScript基础/04-基本数据类型:String & Number & Boolean.md b/04-JavaScript基础/04-基本数据类型:String & Number & Boolean.md
index 6b96379..965cc61 100644
--- a/04-JavaScript基础/04-基本数据类型:String & Number & Boolean.md
+++ b/04-JavaScript基础/04-基本数据类型:String & Number & Boolean.md
@@ -179,7 +179,6 @@ let name = 'qianguyihao';
console.log(`我是${name}`); // 打印结果:我是 qianguyihao
```
-
### 在模板字面量中插入表达式
在字符串中插入表达式,以往的写法必须是这样的:
@@ -197,10 +196,52 @@ const b = 10;
console.log(`this is ${a + b} and
not ${2 * a + b}.`);
+```
+打印结果:
```
+this is 15 and
+not 20.
+```
+### 换行时不容易出错
+
+上面的例子中,也可以看出这个特征。
+
+### 在模板字面量中插入函数返回值
+
+举例:
+
+```js
+function getName() {
+ return 'qianguyihao';
+}
+
+console.log(`www.${getName()}.com`); // 打印结果:www.qianguyihao.com
+```
+
+
+### 模板字面量支持嵌套使用
+
+```js
+const nameList = ['千古壹号', '许嵩', '解忧少帅'];
+
+function myTemplate() {
+ // join('') 的意思是,把数组里的内容合并成一个字符串
+ return `
+ ${nameList
+ .map((item) => `- ${item}
`)
+ .join('')}
+
`;
+}
+document.body.innerHTML = myTemplate();
+
+```
+
+效果如下:
+
+
## 数值型:Number
diff --git a/04-JavaScript基础/14-内置对象 String:字符串的常见方法.md b/04-JavaScript基础/14-内置对象 String:字符串的常见方法.md
index c73aa28..9c8d892 100644
--- a/04-JavaScript基础/14-内置对象 String:字符串的常见方法.md
+++ b/04-JavaScript基础/14-内置对象 String:字符串的常见方法.md
@@ -1,4 +1,3 @@
-
## 前言
> 在日常开发中,String 对象(字符串对象)的使用频率是非常高的。所以有必要详细介绍。
@@ -7,70 +6,74 @@
字符串的常见方法如下。
-## indexOf()/lastIndexOf():获取指定字符的索引
+## 查找字符串
+
+### indexOf()/lastIndexOf():获取指定字符的索引
> 这个方法,是使用频率最高的一个方法。
-### 语法
-
-**语法1**:
+**语法 1**:
```javascript
- 索引值 = str.indexOf(想要查询的字符);
+索引值 = str.indexOf(想要查询的字符);
```
-解释:`indexOf()` 是从前向后索引字符串的位置。同理,`lastIndexOf()`是从后向前寻找。
+解释:`indexOf()` 是从前向后查找字符串的位置。同理,`lastIndexOf()`是从后向前寻找。
**作用**:可以检索一个字符串中是否含有指定内容。如果字符串中含有该内容,则会返回其**第一次出现**的索引;如果没有找到指定的内容,则返回 -1。
-因此可以得出一个技巧:
+因此可以得出一个重要技巧:
-- **如果获取的索引值为0,说明字符串是以查询的参数为开头的**。
+- **如果获取的索引值为 0,说明字符串是以查询的参数为开头的**。
-- 如果获取的索引值为-1,说明这个字符串中没有指定的内容。
+- 如果获取的索引值为-1,说明这个字符串中没有指定的内容。
-
-代码举例1:
+举例 1:
```javascript
- var str = 'abcdea';
+const str = 'abcdea';
- //给字符查索引(索引值为0,说明字符串以查询的参数为开头)
- console.log(str.indexOf("c"));
- console.log(str.lastIndexOf("c"));
-
- console.log(str.indexOf("a"));
- console.log(str.lastIndexOf("a"));
+//给字符查索引(索引值为0,说明字符串以查询的参数为开头)
+console.log(str.indexOf('c'));
+console.log(str.lastIndexOf('c'));
+console.log(str.indexOf('a'));
+console.log(str.lastIndexOf('a'));
```
打印结果:

-**语法2**:
+举例 2:
+
+```js
+const name = 'qianguyihao';
+
+console.log(name.indexOf('yi')); // 打印结果:6
+```
+
+**语法 2**:
这个方法还可以指定第二个参数,用来指定查找的**起始位置**。语法如下:
-
```javascript
- 索引值 = str.indexOf(想要查询的字符, [起始位置]);
+索引值 = str.indexOf(想要查询的字符, [起始位置]);
```
-代码举例2:(两个参数时,需要特别注意)
+举例 3:(两个参数时,需要特别注意)
```javascript
- var str = 'qianguyihao';
- result = str.indexOf('a', 3); // 从第三个位置开始查找 'a'这个字符 【重要】
+var str = 'qianguyihao';
+result = str.indexOf('a', 3); // 从第三个位置开始查找 'a'这个字符 【重要】
- console.log(result); // 打印结果:9
+console.log(result); // 打印结果:9
```
上方代码中,`indexOf()`方法中携带了两个参数,具体解释请看注释。
-
-### 举例
+### indexOf 举例
**案例**:查找字符串"qianguyihao"中,所有 `a` 出现的位置以及次数。
@@ -78,80 +81,82 @@
(1)先查找第一个 a 出现的位置。
-(2)只要indexOf 返回的结果不是 -1 就继续往后查找。
+(2)只要 indexOf 返回的结果不是 -1 就继续往后查找。
-(3)因为indexOf 只能查找到第一个,所以后面的查找,可以利用第二个参数,在当前索引加1,从而继续查找。
+(3)因为 indexOf 只能查找到第一个,所以后面的查找,可以利用第二个参数,在当前索引加 1,从而继续查找。
代码实现:
```js
- var str = 'qianguyihao';
- var index = str.indexOf('a');
- var num = 0;
- while (index !== -1) {
- console.log(index);
- num++; // 每打印一次,就计数一次
- index = str.indexOf('o', index + 1);
- }
+var str = 'qianguyihao';
+var index = str.indexOf('a');
+var num = 0;
+while (index !== -1) {
+ console.log(index);
+ num++; // 每打印一次,就计数一次
+ index = str.indexOf('o', index + 1);
+}
- console.log('a 出现的次数是: ' + num);
+console.log('a 出现的次数是: ' + num);
```
+
+###
+
+
+
+
## 获取指定位置的字符
-
### 1、charAt(index)
-
语法:
```javascript
- 字符 = str.charAt(index);
+字符 = str.charAt(index);
```
解释:返回字符串指定位置的字符。这里的 `str.charAt(index)`和`str[index]`的效果是一样的。
注意:字符串中第一个字符的下标是 0。如果参数 index 不在 [0, string.length) 之间,该方法将返回一个空字符串。
-
**代码举例**:
```javascript
- var str = new String("smyhvae");
+var str = new String('smyhvae');
- for (var i = 0; i < str.length; i++) {
- console.log(str.charAt(i));
- }
+for (var i = 0; i < str.length; i++) {
+ console.log(str.charAt(i));
+}
```
打印结果:

-上面这个例子一般不用。一般打印数组和json的时候用索引,打印String不建议用索引。
+上面这个例子一般不用。一般打印数组和 json 的时候用索引,打印 String 不建议用索引。
### 2、str[index]
-`str.charAt(index)`和`str[index]`的效果是一样的,不再赘述。区别在于:`str[index]`是H5标准里新增的特性。
+`str.charAt(index)`和`str[index]`的效果是一样的,不再赘述。区别在于:`str[index]`是 H5 标准里新增的特性。
### 3、charCodeAt(index)
语法:
```javascript
- 字符 = str.charCodeAt(index);
+字符 = str.charCodeAt(index);
```
解释:返回字符串指定位置的字符的 Unicode 编码。不会修改原字符串。
在实际应用中,通过这个方法,我们可以判断用户按下了哪个按键。
-
**代码举例**:打印字符串的**占位长度**。
提示:一个英文占一个位置,一个中文占两个位置。
-思路:判断该字符是否在0-127之间(在的话是英文,不在是非英文)。
+思路:判断该字符是否在 0-127 之间(在的话是英文,不在是非英文)。
代码实现:
@@ -159,7 +164,7 @@
```
@@ -497,10 +490,8 @@
## 我的公众号
-想学习**代码之外的技能**?不妨关注我的微信公众号:**千古壹号**(id:`qianguyihao`)。
+想学习**代码之外的技能**?不妨关注我的微信公众号:**千古壹号**。
扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外:

-
-