How to unset a Javascript Constant in ES6?

You can't directly do it, looking at the specs show us that the value can be set, but not over-written (such is the standard definition of a constant), however there are a couple of somewhat hacky ways of unsetting constant values.

Using scope

const is scoped. By defining the constant in a block it will only exist for this block.

Setting an object and unsetting keys

By defining const obj = { /* keys */ } we define a value obj that is constant, but we can still treat the keys like any other variable, as is demonstrated by the examples in the MDN article. One could unset a key by setting it to null.

If it's memory management that is the concern then both these techniques will help.


The delete operator is actually for deleting an object property, not a variable. In fact, in strict mode, delete foo is a syntax error.

Usually you can "delete" a value/object by removing all references to it, e.g. assigning null to a variable.

However, since constants are not writable (by definition) there is no way to do this.