#javascript
#javascript
Вопрос:
Если да, то чем это отличается от использования arrayObject = []
. Это две разные вещи или два способа сделать то же самое.
Ответ №1:
array.length = 0;
сохраняет ссылку объекта на исходный массив.
array = [];
создает новую ссылку на объект.
Комментарии:
1. Хорошим обновлением вашего ответа было бы показать этот эффект. Например.
b = a, a.length=0; log(a===b), a=[], log(a===b) ==> true, false
2. Тогда лучше использовать свойство length для очистки массива. я прав?. В подобных случаях нам нужно очищать массив с помощью in в цикле каждый раз перед использованием.
3. @Роберт, это зависит от варианта использования. если вам это нужно в цикле, вы могли бы использовать локальную переменную внутри цикла, например
const array = []
.4. Если у вас есть ссылки на этот массив, да. Если нет, то вряд ли это будет иметь большое значение.
Ответ №2:
Да, похоже, что это действительно очищает память.
a=[]
создаст новую ссылку для пустого массива.
let a = [1, 2, 3];
a.length = 0;
console.log(a);
a.length = 2;
console.log(a);