变量的作用域
变量作用域指的是变量的作用范围,javascript中的变量分为全局变量和局部变量。
1、全局变量:在函数之外定义的变量,为整个页面公用,函数内部外部都可以访问。
2、局部变量:在函数内部定义的变量,只能在定义该变量的函数内部访问,外部无法访问。
<script type="text/javascript">
//全局变量
var a = 12;
function myalert()
{
//局部变量
var b = 23;
alert(a);
alert(b);
}
myalert(); //弹出12和23
alert(a); //弹出12
alert(b); //出错
</script>
定时器
setTimeout 只执行一次的定时器
clearTimeout 关闭只执行一次的定时器
setInterval 反复执行的定时器
clearInterval 关闭反复执行的定时器
<script type="text/javascript">
function time(){
console.log('定时器');
}
//循环计时器
times=setInterval('time()',200);//开启循环计时器 没200毫秒执行一次time
clearInterval(times);//清除定时器,需要将开启计时器的方法用变量接收
//一次计时器
times_01=setTimeout('time()',1000);//1000毫秒后只执行一次
clearTimeout(times_01);//清除定时器,需要将开启计时器的方法用变量接收
</script>
封闭函数(又叫js沙箱)
封闭函数是javascript中匿名函数的另外一种写法,创建一个一开始就执行而不用命名的函数。
(function myalert(){
alert('hello!');
})();
封闭函数的好处
封闭函数可以创造一个独立的空间,在封闭函数内定义的变量和函数不会影响外部同名的函数和变量,可以避免命名冲突,在页面上引入多个js文件时,用这种方式添加js文件比较安全,
还可以在函数定义前加上“~”和“!”等符号来定义匿名函数;虽然下列函数写有名称,但是通过其他方式调用不到;
<script type="text/javascript">
!function myfun(){
alert();
}();
~function myfun_01(){
alert();
}();
</script>