一、今日学习内容:
- 数据类型的分类
- 基本类型
- number / string / undefined / null / boolean / symbol / bigint(ES11精密计算)
- 引用类型
- object ( object / function / array )
- 数据类型的内存分配
- 引用类型:堆,栈中存放他的地址(在堆中的地址),指向堆中的数据
- 深浅拷贝
- 为什么要拷贝
- 如果是引用类型,两个对象就会共享一份数据,只要修改其中一个对象,就会对另外一个对象造成影响
- 浅拷贝
- 只拷贝一层(值),后面几层都是地址
- 将对象的每个属性进行一次复制,但是当对象的属性值为引用类型时,复制的其实是他的地址(或者说是引用),除第一层外,当他拷贝的值发生改变的时候,源对象的值同时改变
- 方法:
- for...in / Object.assign({},要拷贝的对象)
- 深拷贝
- 每一层都拷贝,拷贝的是值不是地址
- 复制对象所有属性,即复制其所有的值,改变拷贝的值,原来对象的值不会发生改变
- 方法:
- (1)JSON.parse(JSON.stringify(要拷贝的对象));有缺陷
- show: function () { }, //没了
- (2)_.cloneDeep(要拷贝的对象)----完美拷贝
- 变量的类型检测
- Object.prototype.toString()
- 继承
- ES5:寄生组合式继承
- 1、实例(new)可以继承父类原型方法以及父类私有属性。
- 2、寄生继承只做继承父类原型方法,不继承父类私有属性;
- 3、组合继承即继承父类原型方法和继承父类私有属性。
|