From 164101cc39faf169b27c5ece4a7cead5e7f1b6e8 Mon Sep 17 00:00:00 2001 From: qianguyihao Date: Sun, 7 Jun 2020 21:58:03 +0800 Subject: [PATCH] =?UTF-8?q?add:=20=E6=A8=A1=E6=9D=BF=E5=AD=97=E9=9D=A2?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 00-前端工具/01-VS Code的使用.md | 6 + ...4-基本数据类型:String & Number & Boolean.md | 43 ++- .../14-内置对象 String:字符串的常见方法.md | 269 +++++++++--------- 3 files changed, 178 insertions(+), 140 deletions(-) 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 ``; +} +document.body.innerHTML = myTemplate(); + +``` + +效果如下: + +![](http://img.smyhvae.com/20200607_2118.png) ## 数值型: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')); ``` 打印结果: ![](http://img.smyhvae.com/20180202_1420.png) -**语法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)); +} ``` 打印结果: ![](http://img.smyhvae.com/20180202_1401.png) -上面这个例子一般不用。一般打印数组和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`)。 +想学习**代码之外的技能**?不妨关注我的微信公众号:**千古壹号**。 扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外: ![](http://img.smyhvae.com/20190101.png) - -