

原理:就是函数及变量的声明都将被提升到函数的最顶部。
结果:变量和函数都支持先试用后声明
案例:
//变量提升x = 5;
// 变量 x 设置为 5alert(x);var x;
// 声明 x//函数提升print(5);
//调用函数function print(y)
{ //声明函数 return y * y;}原理:在函数内嵌套另一个函数(另一个函数则为闭包)
结果:
在js中没有静态变量,可以将函数内声明的局部变量作为局部变量
怎么保证局部变量只被调用一次,可以通过变量赋值的方式,也就是首次调用最外层函数,后面都调用闭包
可以防止其他函数对其进行修改(其他函数可任意对全局变量进行修改)
案例:
function count()
{ var counter = 0;
return function ()
{return counter += 1;}}
var add= count();add();
add();//值为二