For example, will the first piece of code perform a full search twice, or is it smart enough to cache results if no DOM changes have occurred?
if ($(\"#navba
jQuery doesn't, but there's the possibility of assigning to variables within your expression and then use re-using those in subsequent expressions. So, cache-ifying your example ...
if ((cached = $("#navbar .heading")).text() > "") {
cached.hide();
}
Downside is it makes the code a bit fuglier and difficult to grok.