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('许')); // 同上
|
||||||
```
|
```
|
||||||
|
|
||||||
打印结果:
|
打印结果:(都是数组)
|
||||||
|
|
||||||
|
![](http://img.smyhvae.com/20200611_2050.png)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
![](http://img.smyhvae.com/20180202_1503.png)
|
|
||||||
|
|
||||||
## replace()
|
## replace()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user