一,js动画基本都是依靠setInterval和setTimeout来实现javascript
1,setInterval是间隔执行,过一段时间执行一次代码
setInterval(function(){},500);即每隔500毫秒执行一次function(),不主动中止,会一直作下去。java
2,setTimeout是延时执行,隔一段时间之后执行
setTimeout(function(){},500);即500毫秒之后执行函数function(),执行一次就结束了。
/*var a=0
var b=setInterval(function(){
console.log(a++);
if(a>5){
clearInterval(b);
}
},500);//间隔执行*/
setTimeout(function(){
alert("v");
},2000);//延时执行安全
二,做用域闭包
1,做用域是程序中定义这个变量的有效做用区域
代码:function a(){
var b=0;
function c(){
var d=5;
}
c();
alert(b);
alert(d);
}
a();
只会弹出变量b,由于d只在函数c内生效。
2,全局变量和局部变量
有做用域限制的函数是局部变量。定义在最外面,全局生效的变量叫全局变量。
3,做用域链:即变量的查询过程:由内到外。

弹出变量v,由于是在函数a内调用,因此先在函数a里查询,结果找不到,再向外一层查找v,找到后弹出。(若是全局也没找到变量v,则会显示no defined)
4,javascript里没有块级做用域
即函数内定义的变量在函数外是拿不到的。
function(){var a=1 };
alert(a);//在函数外是没有办法调用变量a的。
三,闭包函数
1,闭包就是可以读取其余函数内部变量的函数。 2,让这些变量的值始终保持在内存中。 3,闭包能够保护函数内的变量安全。 //CSS3 4种变形方式:旋转,平移,缩放,扭曲(斜切)