В чём разница обёрток кода jQuery?
Первый — запуск кода после события DOMContentLoaded. Это значит, что DOM построен и можно безопасно начинать траверс.
Второй код — IIFE, просто запуск код без попадания переменных в глобальный контекст.(function () {
	var test = 7;
})();
console.log(window.test); //undefined
Использование IIFE прекрасно подходит для паттерна «Модуль»var myObject = function () {
	var test = 7; // Приватная переменная

	return {
		test: function (a) {
			console.log(a * test);
		}
	};
}();

myObject.test(5); // 35
Вторая функция выполняется, когда объектная модель (DOM) готова к использованию, мол когдадокумент загружен и готов- делаем. Первая - в том же случае, т.к. The ready() method может быть применен только к одному данному документу, поэтому селектор не обязателен.
Третья - то же самое в принципе, т.к. $ - это функция, если не передать в нее параметры (селекторы), то она вернет объект готового документа.
Что при этом будет быстрее - хз.
Вообще я с javascript и Jquery не очень дружу, поэтому могу ошибаться. Думаю, надо гуглить в сторону функции $