javascript 与 jquery 变量作用域差异问题

/***javascript例子***/

function fn(){
var oo="oo";
function fnn(){
alert(oo);
}
fnn();
}

fn(); // 结果 undefined

/***jquery 例子***/

$(

function(){

var oo="oo";
function fnn(){
alert(oo);
}
fnn();
}
)
// 结果 oo

按我理解以上jquery 只是将 匿名函数 等待页面加载完成后才执行而已
整函数结构跟之前的javascript的函数应该是一样的
但是为什么 在jquery中 函数fnn可以获取到其外部的变量oo

第一个也是oo,哪来的undefined。。楼主你运行过没有了。。

function fn(){
var oo="oo";
function fnn(){

alert(oo);
var oo="oo2";

}
fnn();
alert(oo);

}
fn();