1. var a,b; (function(){ alert(a); //undefined alert(b); //undef var a=b=3; alert(a); //3 alert(b); //3 })(); alert(a); //undef alert(b); //3这个地方是因为赋值是从后往前在赋值的。b这里没有var 变成了一个全局的变量。所以是3。 闭包构造了一个命名空间。