1.闭包
概念:是指在一个函数外部可以访问函数内部成员变量/方法;
闭包的作用:缓存数据,函数内部的成员访问;
重点:缓存数据 放在外部函数和内部函数之间,就可以实现数据缓存
2.沙箱
是指虚拟的网络环境,在内部测试并不会影响外部的环境
(function(){} ());
3.浅拷贝和深拷贝
浅拷贝 —-只是拷贝了基本类型的数据,而引用类型数据,复制后也是会发生引用,我们把这种拷贝叫做“(浅复制)浅拷贝”,
换句话说,浅复制仅仅是指向被复制的内存地址,如果原地址中对象被改变了,那么浅复制出来的对象也会相应改变。
深拷贝 —-在计算机中开辟了一块新的内存地址用于存放复制的对象。
深浅拷贝的区别:
1.最根本的区别在于是否是真正获取了一个对象的复制实体,而不是引用。
2.浅拷贝是拷贝一层,深层次的对象级别的就拷贝引用;深拷贝是拷贝多层,每一级别的数据都会拷贝出来
3.浅拷贝是将原始对象中的数据型字段拷贝到新对象中去,将引用型字段的“引用”复制到新对象中去,不把“引用的对象”复制进去,
所以原始对象和新对象引用同一对象,新对象中的引用型字段发生变化会导致原始对象中的对应字段也发生变化。
4.深拷贝是在引用方面不同,深拷贝就是创建一个新的和原始字段的内容相同的字段,是两个一样大的数据段,所以两者的引用是不同的,
之后的新对象中的引用型字段发生改变,不会引起原始对象中的字段发生改变。
浅拷贝的使用 for in的用法
深拷贝==>递归实现
是指将一个对象的成员,在另外一个对象中申请内存空间,然后放进去
重点: instanceof 用来检测对象中的成员 类型
数组 Array[] 对象Object{}