const arr = [1, 2, 3, 4]; console.log('浪里行舟'); arr.length = 0 // 可以直接让数字清空,而且数组类型不变。 // arr = []; 虽然让a变量成一个空数组,但是在堆上重新申请了一个空数组对象。
2. 对象尽量复用
对象尽量复用,尤其是在循环等地方出现创建新对象,能复用就复用。不用的对象,尽可能设置为null,尽快被垃圾回收掉。
var t = {} // 每次循环都会创建一个新对象。 for (var i = 0; i < 10; i++) { // var t = {};// 每次循环都会创建一个新对象。 t.age = 19 t.name = '123' t.index = i console.log(t) } t = null //对象如果已经不用了,那就立即设置为null;等待垃圾回收。
3.在循环中的函数表达式,能复用最好放到循环外面。
// 在循环中最好也别使用函数表达式。 for (var k = 0; k < 10; k++) { var t = function(a) { // 创建了10次 函数对象。 console.log(a) } t(k) }
// 推荐用法 function t(a) { console.log(a) } for (var k = 0; k < 10; k++) { t(k) } t = null