Как правило, нет. Переменные, объявленные с var
, являются локальными и при возвращении вывозят мусор. Если вы опустите var
, то переменные будут глобальными, и использование ключевого слова delete
может быть полезно для глобальных переменных в некоторых случаях, но, как правило, рекомендуется объявлять все переменные с var
, чтобы не загрязнять window
namespace.
delete
может быть полезным при использовании наследования на основе прототипов, например:
function myclass() {
this.variable = 'myvalue'
...
delete this.variable // finished with this variable
}
var inst = new myclass()
Имейте в виду, что если inst
будет удален или выйдет из области видимости (сборщик мусора), все атрибуты в нем также будут удалены. delete
также может быть полезно для удаления элементов из хеш-таблиц:
var d = {}
d['blah'] = 'myvalue'
...
delete d['blah']
Есть некоторые специфичные для браузера ошибки сборки мусора. Например, в IE иногда возникают проблемы с очисткой атрибутов в DOM-элементах, замыканиях и т. Д., Хотя многие из этих проблем были уменьшены в IE8, я считаю.