Существует две основные причины использования
$(document).ready (function ()) // or $(function ())
1) Это гарантирует, что код внутри будет запущен только после полной загрузки DOM (это не включает загрузку изображений, flash или других ресурсов, только DOM, созданный из HTML). Это означает, что вы можете поместить javascript в любое место HTML-кода, а не внизу (который с помощью vanilla javascript - единственное место, где вы можете разместить его, чтобы гарантировать, что он будет работать на всем DOM вместо того, что загружено в данный момент). Если вы не используете событие window.onload, которое также гарантирует это, но может использоваться только один раз. Что подводит меня ко второму пункту;
2) Это позволяет вам запускать несколько функций при загрузке страницы, а не одноразовое использование window.onload, которое вы используете при использовании vanilla javascript. Это здорово, потому что это означает, что вам не нужно: а) писать свою собственную функцию, чтобы позаботиться об этом, б) беспокоиться о проверке, чтобы увидеть, есть ли уже функция загрузки из другой библиотеки, в) тратить то, что похоже на годы отладки только чтобы узнать, что ваш window.onload был перезаписан чужим кодом.
Бонусный балл: 3) Выглядит круто, нет? : P
Другие примечания: если вы не используете DOM или не манипулируете им, ваш код не обязательно должен находиться внутри функции $ (document) .ready ().
Помещение ваших файлов javascript в конец HTML, непосредственно перед тем, как даст ощутимое увеличение скорости загрузки - на самом деле это не быстрее, но браузер загрузит JS после HTML, поэтому можно начать рендеринг HTML во время загрузки JS. Это, в свою очередь, означает, что что-то появится на экране пользователя на долю секунды раньше, чем сценарий в - а в Интернете счетчик разделенных секунд:)