本帖最后由 云云 于 2022-11-29 00:15 编辑
一、今日学习
# 1. 数据类型的分类【重点】
1. 基本类型:number string undefined null boolean symbol bigInt
2. 引用类型:object(object function array)
## 1.1 数据类型的内存分配【理解明白】
1. 基本类型:栈
2. 引用类型:堆,栈中存放它的地址(在堆中的地址),指向堆中的数据
## 1.2 变量的复制【重点!】
1. 基本类型:传递的是值的拷贝
2. 引用类型:传递地址的拷贝
## 1.3 参数的传递
1. 基本类型:传递的是值的拷贝
2. 引用类型:传递地址的拷贝
# 2. 深浅拷贝
为什么要拷贝:如果是引用类型,两个对象就会共享一份数据,只要修改其中一个对象,就会对另外一个对象造成影响
## 1.1 浅拷贝
只拷贝一层
```javascript
实现方式1:for...in
实现方式2:Object.assign();
```
## 1.2 深拷贝
每一层都拷贝
```javascript
let 新对象=JSON.parse(JSON.stringify(原对象));
```
```javascript
un: undefined, // 没有了
show: function () { }, // 没有
reg: /\.css$/, // 空对象
int: Infinity, // null
fin: -Infinity, // null
date: new Date(), // 字符串
null: null
```
完美拷贝
```javascript
lodash.js
const 新对象 = _.cloneDeep(原对象);
```
# 3. 变量的类型检测【掌握!!!】
1. typeof:主要用于检测基本类型
2. instanceof:主要用于检测引用类型
3. Object.prototype.toString();
# 4. 继承
ES5继承:寄生组合式继承 |