千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip

基本数据类型(原始数据类型、简单数据类型)
number
string
boolean
undefined
null
基本数据类型指的是简单的数据段,存储在 栈(stack)中 基本数据类型 进行的是 值传递
当将 一个变量 赋值给 另外一个变量 是将这个变量的值 复制了一份 赋值给了 另外一个变量
两个变量的值在内存中是 相互独立的 所以当我们改变其中一个变量,对另外一个变量是不会影响
引用数据类型(对象数据类型、复杂数据类型)
Function
Array
Object
......
引用数据类型指的是有多个值构成的对象,存储在 堆(heap 中
变量其实是保存在栈内存中的一个指针
这个指针指向堆内存的引用地址
引用数据类型 进行的是 引用传递 当将 一个变量 赋值给 另外一个变量
是将这个变量的的引用地址 赋值给了 另外一个变量 两个变量的指针此时指向的是同一个 引用地址
所以当我们改变其中一个变量时,另外一个变量也会发生变量
浅拷贝
当我们拷贝一个对象的时候,只会拷贝对象第一层的值,
而对于对象深层数据都拷贝的是 引用地址
浅拷贝拷贝的是对象的引用地址,当我们根据一个对象拷贝得到一个新的对象
一个对象发生变化的时候,另一个也会受到影响
深拷贝
当我们拷贝一个对象的时候,对于对象的每一层数据都拷贝的是 值,而不是引用地址
深拷贝拷贝的是对象的值, 当我们根据一个对象拷贝得到一个新的对象
一个对象发生变化的时候,另一个是不会受到影响,两个对象是独立的
实现深拷贝的方式
json的正反序列
lodash库的_.cloneDeep()方法
递归