delete
operator should not be used on local variables
- USELESS_LOCAL_VAR_DELETE
- Code Quality
- Low
- No tags
This rule applies when the delete
operator is used on a local variable.
In JavaScript, delete
operator does not immediately remove objects from memory. Instead, it just removes references to the objects. When all references to an object are gone, the object will be garbage-collected automatically.
Especially, local variables cannot be explicitly deleted and applying delete
operator will have no effect. If the intention is to remove references, values like null
should be assigned instead.
Noncompliant Code Example
View with compliant examples side by sidefunction foo(x) {
var obj = getObject(x);
doSomething(obj);
delete obj; // USELESS_LOCAL_VAR_DELETE alarm because local variable 'obj' cannot be deleted.
doOther();
}
Compliant Code Example
View with noncompliant examples side by sidefunction foo(x) {
var obj = getObject(x);
doSomething(obj);
obj = null;
doOther();
}
Version
This rule was introduced in DeepScan 1.31.0.