定时器、声明提升、函数表达式、闭包

2018-09-14  本文已影响0人  我是江海洋我真的是江海洋

一、定时器

//一次性定时器
setTimeOut(function(){

 //1秒后执行

},1000)
停止一次性定时器:clearTimeout();

//永久性定时器
setInterval(function(){

  //1秒后执行,并且每隔一秒执行一次

},1000)
停止永久性定时器的方法:clearInterval();

案例:

代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<button class='btn1'>停止一次性定时器</button>
<button class='btn2'>停止永久性定时器</button>
<script>
var btn1=document.querySelector('.btn1');
var timer=setTimeout(function(){
console.log('hello.js');
},3000)

btn1.onclick=function(){
    clearTimeout(timer);
}

var btn2=document.querySelector('.btn2');
var timers=setInterval(function(){
    console.log('hello world');
},1000)

btn2.onclick=function(){
    clearInterval(timers);
}

</script>

</body>
</html>
二、声明提升

代码:

<script>
fn();
function fn(){
console.log('hello world');
}
fn();

foo()//报错
var foo=function(){
    console.log('hello world');
}
fo();

</script>
三:函数表达式
函数的声明可以把函数的调用放在任何位置都可以执行

五、闭包

(1)闭包是依赖于函数的,因为函数是js中唯一拥有自身作用域的结构

(2)两个单独的函数,分别都有自己的作用域,并且只能访问自己作用域中的变量,而无法访问其他作用域中的变量

(3)如果想要两个函数访问其他函数作用域中的变量,这时候就需要函数的嵌套。这时候就会形成闭包

(4) 闭包:闭包是指有权访问另一个函数作用域中的变量的函数,当函数嵌套的时候,我们可以叫内部函数为闭包
案例:

(1)js部分

<script>
function fn1(){
var a=3;
console.log(a); //3
function fn2(){
var b=5;
console.log(a); //3
console.log(b); //5
return b;
}
console.log(fn2()); //5
}
fn1();
</script>

上一篇 下一篇

猜你喜欢

热点阅读