Part 1 - Null vs Delete
I wanted to start the series with the difference between delete and null since it causes a huge confusion among developers and not many articles state which is better.
delete command is used to delete properties of an object not to delete the actual object from memory. How Garbage Collection works is that it run at certain points in time (I am not going to elaborate on that just yet) and removes all the objects from memory that has no longer referenced by anybody. By using delete command we are marking objects to be cleared on the next run of the Garbage collection (GC). This sounds good right? Do you see a problem yet? I doubt that you are. What happens if there are multiple variables referencing the same object? Is delete on a single variable free the object? The answer is NO, it will not. It will just remove the linkage between that variable and the object it is in relation with and in the best case the memory used by the variable will get cleared by GC not the object itself.
At this point I suggest you read  from references to understand delete more.
Therefore I suggest to set variables to null rather than using delete command.