zoukankan      html  css  js  c++  java
  • 如何理解作用域

    1. JS没有块级作用域
    2. 只有全局作用域喝函数

    作用域分为一下几种

    1. 自由变量
    2. 作用域链,即自由变量的查找
    3. 闭包的俩个场景

    自由变量

    1 var names = 'zhangsan'
    2 console.log(names) // zhangsan
    3 var num = 100
    4 function t(){
    5     var num = 200
    6     console.log(num) //200
    7 }
    8 t()

    作用域链,即自由变量的查找

    // 作用域链(一个变量不断的往父级找)
    var sd = 22
    function fg() {
        var s2 = 666
        // 当前作用域没有定义的变量,即自由变量
        console.log(s2) // 666
        console.log(sd) // 22
    }
    fg()
    var w = 123
    function w1() {
        var v = 568
        function w2() {
            var c = 300
            // 没有的会不断像父级找
            console.log(w) // 123
            console.log(v) // 568
            console.log(c) // 300
        }
        w2()
    }
    w1()

    闭包的俩个场景

     1 // 闭包
     2 // 1.函数作为返回值
     3 // 2、函数作为参数来传递
     4 
     5 function ss (){
     6     var e = 888
     7     return function(){
     8         console.log(e)  //888  // 自由变量,会在他的父作用域去找即ss函数
     9     }
    10 }
    11 
    12 var s1 = ss()
    13 var e = 999
    14 s1()
    15 
    16 function a1(){
    17     var w = 543
    18     return function(){
    19         console.log(w)  //543 //自由变量,会在他的父作用域去找即ss函数
    20     }
    21 }
    22 var z = a1()
    23 function a2(parm){
    24     var w = 900
    25     parm()
    26 }
    27 a2(z)
  • 相关阅读:
    共享内存
    文件IO函数和标准IO库的区别
    链表程序
    flash_header.S ( freescale imx6 board)
    深入理解二维数组
    putchar和puts
    指针目标
    C语言:break和continue
    C语言:输入输出
    python lambda
  • 原文地址:https://www.cnblogs.com/chailuG/p/11260102.html
Copyright © 2011-2022 走看看