美文网首页
定时器、声明提升、函数表达式、闭包

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

作者: 闫梓璇 | 来源:发表于2018-09-13 11:19 被阅读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>

相关文章

  • 函数表达式

    一、函数声明提升 二、递归 三、闭包(详见闭包)

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

    一、定时器 停止一次性定时器:clearTimeout(); 停止永久性定时器的方法:clearInterval(...

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

    一、定时器 //一次性定时器setTimeOut(function(){ },1000)停止一次性定时器:clea...

  • day6(12.21)函数表达式

    函数表达式的特征使用函数表达式递归使用闭包定义私有变量 定义函数的方式有两种:函数声明,类似变量声明用var,函数...

  • 第七章 函数表达式

    函数表达式的特征 递归 闭包 函数表达式的特征 定义函数的方式有两种,一种是函数声明,一种是函数表达式。函数声明如...

  • 【JS】17--闭包

    闭包 前置知识:声明函数两种方法: 函数声明,存在函数声明提升,因此可以在函数声明之前调用(不会报错)。 函数表达...

  • 前端基础(问答15)

    keywords: 闭包、定时器。 什么是闭包? 有什么作用 内层函数调用外层函数的变量,该内层函数即为闭包。本质...

  • Swift语法 -- [07 - 闭包]

    在Swift中,可以通过func定义一个函数,也可以通过闭包表达式定义一个函数 1 闭包表达式 闭包表达式 闭包表...

  • Swift 5基础语法要点整理—闭包

    闭包 闭包表达式 在Swift中,可以通过func定义一个函数,也可以通过闭包表达式定义一个函数 闭包表达式的简写...

  • JS的闭包

    1.闭包的概念 闭包函数:声明在一个函数中的函数,叫做闭包函数。闭包:内部函数总是可以访问其所在的外部函数中声明的...

网友评论

      本文标题:定时器、声明提升、函数表达式、闭包

      本文链接:https://www.haomeiwen.com/subject/kvqwgftx.html