w3schools vars variable funcion dentro define crear javascript memory

vars - Liberación de memoria de la variable local en JavaScript



set a global variable javascript (3)

Tengo una función JS que se llama en la página cada pocos segundos. Es una actualización de AJAX.

Al ser una función, declaro variables locales. No quiero utilizar cierres o variables globales por varias razones.

Nunca había considerado esto, pero ¿necesito liberar / borrar las variables al final de la función para liberar memoria o JS hará esto automáticamente?


Javascript tiene una recolección de basura automática. No necesita desasignar nada.


Las variables se lanzan una vez que están fuera del alcance, en su caso, las variables locales que se declaran dentro de su función serán liberadas automáticamente por js recolector de basura, no tiene que preocuparse por ellas.


En general, no. Las variables declaradas con var son locales y son basura recolectada cuando regresa. Si omite la var , las variables son globales, y usar la palabra clave delete puede ser útil para variables globales en algunos casos, pero en general es una buena práctica declarar todas las variables con var todos modos para no contaminar el espacio de nombres de la window .

delete puede ser útil cuando se utiliza herencia basada en prototipos, por ejemplo:

function myclass() { this.variable = ''myvalue'' ... delete this.variable // finished with this variable } var inst = new myclass()

Tenga en cuenta que si se elimina inst o se sale del alcance (basura recolectada) también se eliminarán todos los atributos. delete también puede ser útil para eliminar elementos de tablas hash:

var d = {} d[''blah''] = ''myvalue'' ... delete d[''blah'']

Hay algunos errores de recolección de basura específicos del navegador. IE a veces tiene problemas para limpiar atributos en elementos DOM y cierres, etc. por ejemplo, aunque muchos de estos problemas se han reducido en IE8, creo.