Not an expert on the subject, but here's what I have found:
This excellent Smashing Magazine article about garbage collection: Writing fast, memory-efficient Javascript (right above the "Rules of Thumb" subtitle) mentions:
"Globals are cleaned up when you refresh the page, navigate to a different page, close tabs or exit your browser. Function-scoped variables get cleaned up when a variable falls out of scope. When functions have exited and there aren’t any more references to it, the variable gets cleaned up." - SmashingMagazine Article
So yes, it is collected on each page change, however:
[...] "but test it in a real module of code or in an actual application, and the true impact of those optimizations may be much more minimal than you were expecting."
- SmashingMagazine Article
Your app will thus probably suffer more in performance by having to load different resources than by letting the browser automatically collect garbage (unless you have a terrible coding style, that is)
The article has a nice example on how every type of object (variable, function, closure) is garbage collected.
Furthermore, this article entitled Why mobile web apps are slow is a very long (but great) explanation about how Garbage collection is actually a bad thing on mobile, because it actually slows down an app unless it disposes of 6x the amount of required memory (hence why it is considered a welcome help on desk- & laptop)
Further references: