В зависимости от аргумента, $ делает 4 разных вещи (не обязательно в таком порядке).
1) Если это строка, и она похожа на кусок HTML, то вызывается
$.parseHTML
2) Если это строка, но она похожа на селектор, то производится поиск в DOM-дереве
3) Если это функция, то — см. ответ
Алексей Тен — идет проверка, было ли событие DOMContentLoaded, и если да, то переданная функция немедленно вызывается, а если нет, то эта функция навешивается на это событие.
4) Если это DOM-элемент (или одна из DOM-коллекций), возвращается jQuery-обертка над этим элементом (как из пункта 2). Спасибо
Алексей Тен, что напомнил:)