1、window.onload:
当一个文档完全下载到浏览器中时,会触发 window.onload 事件这意味着页面上的全部元素对 javascript 而言都是可以访问的,这种情况对编写功能性的代码非常有利,因为无需考虑加载的次序。
2、$(document).ready(function(){})和$()用法一样
通过 $(document).ready()、$() 注册的事件处理程序,则会在 DOM 完全就绪并可以使用时调用虽然这也意味着所有元素对脚本而言都是可以访问的,但是,却不意味着所有关联的文件都已经下载完毕。换句话说,当 HTML 下载完成并解析为 DOM 树之后,代码就可以运行。
3、
如果不加$(),直接放在<script></script>中,可能导致文档没有加载完毕就执行了代码,导致代码执行不正确。

区别:
ready 事件的触发,表示文档结构已经加载完成(不包含图片等非文字媒体文件)。
onload 事件的触发,表示页面包含图片等文件在内的所有元素都加载完成。

$(function(){ 
/*do some thing*/ 
}) ;
 $(document).ready(function(){
/* do some thing */
});
$().ready(function(){ 
/* do some thing */ 
});
/*三者是等价的*/

原生javascript中onload与jquery中的ready是不同的:

一个是次数不同,$().ready()在一个html中可以使用多次,onload只能使用一次或者说有效绑定只能是唯一的一个。

另一个是执行时机的不同,简单讲$()执行的时机要早于onload,因为$()只要在DOM树加载完成就执行,onload要在全部的元素加载完成执行