[javascript] How to unset a JavaScript variable?

?? The accepted answer (and others) are outdated!

TL;DR

  • delete does not remove variables.
    (It's only for removing a property from an object.)

  • The correct way to "unset" is to simply set the variable to null. (source)
    (This enables JavaScript's automatic processes to remove the variable from memory.)

Example:

x = null;


More info:

Use of the delete operator on a variable is deprecated since 2012, when all browsers implemented (automatic) mark-and-sweep garbage-collection. The process works by automatically determining when objects/variables become "unreachable" (deciding whether or not the code still requires them).

With JavaScript, in all modern browsers:

  • Garbage collection is performed automatically. We cannot force or prevent it.
  • Objects are retained in memory while they are reachable.
  • Being referenced is not the same as being reachable: a pack of interlinked objects can become unreachable as a whole. (source)

The delete operator is only used to remove a property from an object; it does not remove variables.

Unlike what common belief suggests (perhaps due to other programming languages like delete in C++), the delete operator has nothing to do with directly freeing memory. Memory management is done indirectly via breaking references. (source)

When using strict mode ('use strict';, as opposed to regular/"sloppy mode") an attempt to delete a variable will throw an error and is not allowed. Normal variables in JavaScript can't be deleted using the delete operator (source) (or any other way, as of 2021).

 


 

...alas, the only solution:

Freeing the contents of a variable

To free the contents of a variable, you can simply set it to null:

var x;

// ...

x = null;    // (x can now be garbage collected)

(source)


Further Reading:

Examples related to javascript

need to add a class to an element How to make a variable accessible outside a function? Hide Signs that Meteor.js was Used How to create a showdown.js markdown extension Please help me convert this script to a simple image slider Highlight Anchor Links when user manually scrolls? Summing radio input values How to execute an action before close metro app WinJS javascript, for loop defines a dynamic variable name Getting all files in directory with ajax

Examples related to global-variables

What is the best way to declare global variable in Vue.js? How do I turn off the mysql password validation? How to declare Global Variables in Excel VBA to be visible across the Workbook How to create a global variable? global variable for all controller and views How to define global variable in Google Apps Script How to modify a global variable within a function in bash? Using a global variable with a thread Is it possible to use global variables in Rust? How to access global js variable in AngularJS directive

Examples related to undefined

Checking for Undefined In React Raw_Input() Is Not Defined How to resolve TypeError: Cannot convert undefined or null to object "undefined" function declared in another file? Passing Variable through JavaScript from one html page to another page Javascript - removing undefined fields from an object PHP How to fix Notice: Undefined variable: Undefined Symbols for architecture x86_64: Compiling problems Undefined or null for AngularJS PHP Notice: Undefined offset: 1 with array when reading data

Examples related to variable-declaration

C error: Expected expression before int Declare and assign multiple string variables at the same time Python Variable Declaration When to use extern in C++ Declaring variables inside loops, good practice or bad practice? Is it possible to declare a public variable in vba and assign a default value? Can I simultaneously declare and assign a variable in VBA? How to unset a JavaScript variable? C pointer to array/array of pointers disambiguation Is it possible only to declare a variable without assigning any value in Python?

Examples related to unset

How can I remove a key from a Python dictionary? How do I delete an exported environment variable? PHP Unset Array value effect on other indexes How to delete object from array inside foreach loop? Unsetting array values in a foreach loop How to unset a JavaScript variable? Deleting an element from an array in PHP