Vue 中 key 值的作用?
key的主要作用是更高效的更新虚拟dom,当vue.js用v-for更新以渲染的元素列表时默认用原地复用策略,如果数据的顺序被改变,vue将不会移动dom元素来匹配数据的顺序,而是简单地复用这里的每个元素,并确保他在特定的索引下显示已经渲染过的每个元素.
js里哪些操作会造成内存泄漏?
答:(1)在函数中定义全局变量(2)闭包。闭包可以维持函数内局部变量,使其得不到释放。(3)删除元素却没有清除DOM元素引用(4)被遗忘的定时器或者回调(5)子元素存在引用引起的内存泄漏
什么是内存泄露?
内存泄漏(memory leak):是指程序在申请内存后,无法释放已申请的内存空间,导致系统无法及时回收内存并且分配给其他进程使用。通常少次数的内存无法及时回收并不会对程序造成什么影响,但是如果在内存本身就比较少获取多次导致内存无法正常回收时,就会导致内存不够用,最终导致内存溢出。
什么是内存溢出?
内存溢出 (out of memory):指程序申请内存时,没有足够的内存供申请者使用,导致数据无法正常存储到内存中。比如说你再内存中开辟了只有2mb的一个空间你却要放一个3mb的数据就会导致内存溢出.
内存泄露与内存溢出的关系以及区别?
1.关系:内存泄露最终会导致内存溢出,由于系统中的内存是有限的,如果过度占用资源而不及时释放,最后会导致内存不足,从而无法给所需要存储的数据提供足够的内存,从而导致内存溢出。导致内存溢出也可能是由于在给数据分配大小时没有根据实际要求分配,最后导致分配的内存无法满足数据的需求,从而导致内存溢出。
2.区别:内存泄露是由于GC无法及时或者无法识别可以回收的数据进行及时的回收,导致内存的浪费;内存溢出是由于数据所需要的内存无法得到满足,导致数据无法正常存储到内存中。内存泄露的多次表现就是会导致内存溢出。
GC代表垃圾回收机制