JavaScript | delete statement

Demonstrates that no exception raises even if non-existent variable, or object field is deleted.

by Zoltan Boros

HTML

<div id="out"></div>

JavaScript

var outElement = document.getElementById("out");

function println(text)
{
    outElement.innerHTML += text + "<br />";
}

var foo = "abc";
bar = "def";

println("foo (1): [" + foo + "]");
println("bar (1): [" + bar + "]");

println("Deleting 'foo'. Outcome: " + (delete foo));
println("Deleting 'bar'. Outcome: " + (delete bar));

println("foo (2): [" + foo + "]");
try {
    println("bar (2): [" + bar + "]");
} catch (ex) {
    println("Failed to read variable 'bar'. Exception: " + ex.toString());
}

var dummyObject = {
    a : 1,
    b : 2,
    c : 3,
    d : 4
};

println("dummyObject (1): " + JSON.stringify(dummyObject));

println("Deleting dummyObject['a']. Outcome: " + (delete dummyObject["a"]));
println("Deleting dummyObject['nonExistentField']. Outcome: " + (delete dummyObject["nonExistentField"]));

println("dummyObject (2): " + JSON.stringify(dummyObject));

var fieldsToDelete = ["a", "b", "c", "d", "nonExistentField"];
for(var i in fieldsToDelete)
    try {
        delete dummyObject[fieldsToDelete[i]];
    } catch (ex) {
        println("Printout for demo purpose: Failed to delete dummyObject['" + fieldsToDelete[i] + "']. Exception: " + ex.toString());
        dummyObject[fieldsToDelete[i]] = undefined;
    }

println("dummyObject (3): " + JSON.stringify(dummyObject));