update: 字符串的常见方法
This commit is contained in:
		
							parent
							
								
									a5b28d1627
								
							
						
					
					
						commit
						fa7fc16682
					
				@ -335,7 +335,7 @@ parseFloat() 的几个特性,可以参照 parseInt()。
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## 转换为 Boolean
 | 
					## 转换为 Boolean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
将其他的数据类型转换为 Boolean,可以使用 Boolean()函数。情况如下:
 | 
					其他的数据类型都可以转换为 Boolean类型。情况如下:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- 情况一:数字 --> 布尔。除了 0 和 NaN,其余的都是 true。也就是说,`Boolean(NaN)`的结果是 false。
 | 
					- 情况一:数字 --> 布尔。除了 0 和 NaN,其余的都是 true。也就是说,`Boolean(NaN)`的结果是 false。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -348,6 +348,22 @@ parseFloat() 的几个特性,可以参照 parseInt()。
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
PS:转换为 Boolean 的这几种情况,**很重要**,开发中会经常用到。
 | 
					PS:转换为 Boolean 的这几种情况,**很重要**,开发中会经常用到。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**1、隐式转换为 Boolean 类型**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					当非 Boolean 类型的数值和 Boolean类型的数值做比较时,会先把前者进行隐式转换为 Boolean类型,然后再做比较。举例如下:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					console.log(1 == true); // 打印结果:true
 | 
				
			||||||
 | 
					console.log(0 == true); // 打印结果:false
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**2、显式转换为 Boolean 类型**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					方法1:使用 `!!`可以显式转换为 Boolean 类型。比如 `!!3`的结果是true。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					方法2:使用 Boolean()函数可以显式转换为 Boolean 类型。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 知识补充:其他进制的数字
 | 
					## 知识补充:其他进制的数字
 | 
				
			||||||
 | 
				
			|||||||
@ -1,57 +1,4 @@
 | 
				
			|||||||
## 包装类的介绍
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
我们都知道,js 中的数据类型包括以下几种。
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-   基本数据类型:String、Number、Boolean、Null、Undefined
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-   引用数据类型:Object
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
JS 为我们提供了**三个包装类**:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-   String():将基本数据类型字符串,转换为 String 对象。
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-   Number():将基本数据类型的数字,转换为 Number 对象。
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-   Boolean():将基本数据类型的布尔值,转换为 Boolean 对象。
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
通过上面这这三个包装类,我们可以**将基本数据类型的数据转换为对象**。
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
代码举例:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```javascript
 | 
					 | 
				
			||||||
let str1 = 'qianguyihao';
 | 
					 | 
				
			||||||
let str2 = new String('qianguyihao');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
let num = new Number(3);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
let bool = new Boolean(true);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
console.log(typeof str1); // 打印结果:string
 | 
					 | 
				
			||||||
console.log(typeof str2); // 注意,打印结果:object
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
**需要注意的是**:我们在实际应用中不会使用基本数据类型的对象。如果使用基本数据类型的对象,在做一些比较时可能会带来一些**不可预期**的结果。
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
比如说:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```javascript
 | 
					 | 
				
			||||||
var boo1 = new Boolean(true);
 | 
					 | 
				
			||||||
var boo2 = new Boolean(true);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
console.log(boo1 === boo2); // 打印结果竟然是:false
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
再比如说:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```javascript
 | 
					 | 
				
			||||||
var boo3 = new Boolean(false);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if (boo3) {
 | 
					 | 
				
			||||||
    console.log('qianguyihao'); // 这行代码竟然执行了
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
显然,使用 typeof 去检查类型时,
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 基本数据类型不能绑定属性和方法
 | 
					## 基本数据类型不能绑定属性和方法
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -71,7 +18,7 @@ console.log(str.aaa); //打印结果为:undefined
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
上方代码中,当我们尝试打印`str.aaa`的时候,会发现打印结果为:undefined。也就是说,不能给 `string` 绑定属性和方法。
 | 
					上方代码中,当我们尝试打印`str.aaa`的时候,会发现打印结果为:undefined。也就是说,不能给 `string` 绑定属性和方法。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
当然,我们可以打印 str.length、str.indexOf("m")等等。因为这两个方法的底层做了数据类型转换(**临时**将 `string` 字符串转换为 `String` 对象,然后再调用内置方法),也就是我们在上一篇文章中讲到的**包装类**。
 | 
					当然,我们可以打印 str.length、str.indexOf("m")等等。因为这两个方法的底层做了数据类型转换(**临时**将 `string` 字符串转换为 `String` 对象,然后再调用内置方法),也就是我们在上一段中讲到的**包装类**。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**2、引用数据类型:**
 | 
					**2、引用数据类型:**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -97,7 +44,65 @@ console.log(strObj.aaa);
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
内置对象 Boolean 也有一些自带的方法,但是用的不多。
 | 
					内置对象 Boolean 也有一些自带的方法,但是用的不多。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 基本包装类型【重要】
 | 
					### 基本包装类型
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 介绍
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					我们都知道,js 中的数据类型包括以下几种。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-   基本数据类型:String、Number、Boolean、Null、Undefined
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-   引用数据类型:Object
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					JS 为我们提供了三个**基本包装类型**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-   String():将基本数据类型字符串,转换为 String 对象。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-   Number():将基本数据类型的数字,转换为 Number 对象。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-   Boolean():将基本数据类型的布尔值,转换为 Boolean 对象。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					通过上面这这三个包装类,我们可以**将基本数据类型的数据转换为对象**。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					代码举例:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
					let str1 = 'qianguyihao';
 | 
				
			||||||
 | 
					let str2 = new String('qianguyihao');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let num = new Number(3);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let bool = new Boolean(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					console.log(typeof str1); // 打印结果:string
 | 
				
			||||||
 | 
					console.log(typeof str2); // 注意,打印结果:object
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**需要注意的是**:我们在实际应用中一般不会使用基本数据类型的对象。如果使用基本数据类型的对象,在做一些比较时可能会带来一些**不可预期**的结果。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					比如说:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
					var boo1 = new Boolean(true);
 | 
				
			||||||
 | 
					var boo2 = new Boolean(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					console.log(boo1 === boo2); // 打印结果竟然是:false
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					再比如说:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
					var boo3 = new Boolean(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (boo3) {
 | 
				
			||||||
 | 
					    console.log('qianguyihao'); // 这行代码竟然执行了
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					显然,使用 typeof 去检查类型时,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 基本包装类型的作用
 | 
				
			||||||
 | 
					
 | 
				
			||||||
当我们对一些基本数据类型的值去调用属性和方法时,浏览器会**临时使用包装类将基本数据类型转换为引用数据类型**,这样的话,基本数据类型就有了属性和方法,然后再调用对象的属性和方法;调用完以后,再将其转换为基本数据类型。
 | 
					当我们对一些基本数据类型的值去调用属性和方法时,浏览器会**临时使用包装类将基本数据类型转换为引用数据类型**,这样的话,基本数据类型就有了属性和方法,然后再调用对象的属性和方法;调用完以后,再将其转换为基本数据类型。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -112,7 +117,7 @@ console.log(str.length); // 打印结果:11
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```js
 | 
					```js
 | 
				
			||||||
// 步骤(1):把简单数据类型 string 转换为 引用数据类型  String,保存到临时变量中
 | 
					// 步骤(1):把简单数据类型 string 转换为 引用数据类型  String,保存到临时变量中
 | 
				
			||||||
var temp = new String('qianguyihao);
 | 
					var temp = new String('qianguyihao');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 步骤(2):把临时变量的值 赋值给 str
 | 
					// 步骤(2):把临时变量的值 赋值给 str
 | 
				
			||||||
str = temp;
 | 
					str = temp;
 | 
				
			||||||
@ -122,7 +127,7 @@ temp = null;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 在底层,字符串以字符数组的形式保存
 | 
					## 在底层,字符串以字符数组的形式保存
 | 
				
			||||||
 | 
					
 | 
				
			||||||
在底层,字符串是以字符数组的形式保存的。代码举例:
 | 
					在底层,字符串是以字符数组的形式保存的。代码举例:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -426,7 +426,7 @@ console.log(result); // 打印结果:qianguyihao
 | 
				
			|||||||
新的数组 = str.split(分隔符);
 | 
					新的数组 = str.split(分隔符);
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
解释:将一个字符串拆分成一个数组。不会改变原字符串。
 | 
					解释:通过指定的分隔符,将一个字符串拆分成一个**数组**。不会改变原字符串。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
备注:`split()`这个方法在实际开发中用得非常多。一般来说,从接口拿到的 json 数据中,经常会收到类似于`"q, i, a, n"`这样的字符串,前端需要将这个字符串拆分成`['q', 'i', 'a', 'n']`数组,这个时候`split()`方法就派上用场了。
 | 
					备注:`split()`这个方法在实际开发中用得非常多。一般来说,从接口拿到的 json 数据中,经常会收到类似于`"q, i, a, n"`这样的字符串,前端需要将这个字符串拆分成`['q', 'i', 'a', 'n']`数组,这个时候`split()`方法就派上用场了。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -443,22 +443,24 @@ console.log(array); // 打印结果是数组:["qian", " gu", " yi", " hao"]
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```javascript
 | 
					```javascript
 | 
				
			||||||
//split()方法:字符串变数组
 | 
					//split()方法:字符串变数组
 | 
				
			||||||
var str3 = '生命壹号|许嵩|smyhvae';
 | 
					var str3 = '千古壹号|qianguyihao|许嵩';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
console.log(str3);
 | 
					console.log('结果1:' +str3.split()); // 无参数,表示:把整个字符串作为一个元素添加到数组中。
 | 
				
			||||||
 | 
					 | 
				
			||||||
console.log(str3.split()); // 无参数,表示:把字符串作为一个元素添加到数组中。
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
console.log(str3.split('')); // 参数为空字符串,则表示:分隔字符串中每一个字符,分别添加到数组中
 | 
					console.log(str3.split('')); // 参数为空字符串,则表示:分隔字符串中每一个字符,分别添加到数组中
 | 
				
			||||||
 | 
					
 | 
				
			||||||
console.log(str3.split('|')); // 参数为指定字符,表示:此字符将不会出现在数组的任意一个元素中
 | 
					console.log(str3.split('|')); // 参数为指定字符,表示:用 '|' 分隔字符串。此分隔符将不会出现在数组的任意一个元素中
 | 
				
			||||||
 | 
					
 | 
				
			||||||
console.log(str3.split('许')); // 同理
 | 
					console.log(str3.split('许')); // 同上
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
打印结果:
 | 
					打印结果:(都是数组)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||

 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
## replace()
 | 
					## replace()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user