Webcourse/04-JavaScript基础/18-包装类.md
2019-10-01 20:25:16 +08:00

92 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 包装类
### 包装类的介绍
我们都知道js中的数据类型包括以下几种。
- 基本数据类型String、Number、Boolean、Null、Undefined
- 引用数据类型Object
JS为我们提供了**三个包装类**
- String()将基本数据类型字符串转换为String对象。
- Number()将基本数据类型的数字转换为Number对象。
- Boolean()将基本数据类型的布尔值转换为Boolean对象。
通过上面这这三个包装类,我们可以**将基本数据类型的数据转换为对象**。
代码举例:
```javascript
var num = new Number(3);
var str = new String("hello");
var bool = new Boolean(true);
console.log(typeof num); // 打印结果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'); // 这行代码竟然执行了
}
```
### 基本数据类型不能添加属性和方法
方法和属性只能添加给对象,不能添加给基本数据类型。
**注意**:当我们对一些基本数据类型的值去调用属性和方法时,浏览器会**临时使用包装类将其转换为对象**,然后在调用对象的属性和方法;调用完以后,在将其转换为基本数据类型。
代码举例:
```javascript
var str = 123;
str = str.toString(); // 将 number 类型转换为 string 类型
str.hello = "千古壹号"; // 添加属性
console.log(typeof str); // 打印结果string
console.log(str.hello); // 打印结果undefined
```
再比如String 对象的很多内置方法,也可以直接给字符串用。此时,也是临时将字符串转换为 String 对象,然后再调用内置方法。
## 我的公众号
想学习**代码之外的技能**?不妨关注我的微信公众号:**千古壹号**id`qianguyihao`)。
扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外:
![](http://img.smyhvae.com/20190101.png)