私有作用域的初级理解

Posted 花花

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了私有作用域的初级理解相关的知识,希望对你有一定的参考价值。

1.全局变量:全局作用域下声明(预解释)的变量是全局变量
2.私有变量:私有作用域下,函数的形参和声明的变量
3.作用域链:在私有作用域下,执行代码的时候遇到变量,是私有变量则取私有变量,否则往上一级作用域查找直到找到
4.函数每次执行的时候,会形成一个新的私有作用域,然后按照如下步骤进行:
  a.如果有形参先给形参赋值
  b.进行当前私有作用域的预解释
  c.当前作用域的代码从上到下执行
5.闭包:函数执行形成新的私有作用域,里面的私有变量只在里面有效,与外面的毫无关系

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <p>
        模拟浏览器:
            1.进去全局作用域,开始预解释,
            var varible,
            fn="function fn(varible){
                console.log(varible);
              var varible = "私有";
              console.log(varible);
                }"
         预解释完毕
         2.开始执行
         全局作用域:
             varible="全局"
             打印varible("全局")
         函数执行创建新的私有作用域:
             形参:varible="参数";
             预解释: varible已经声明了不再声明,预解释完毕
             开始执行: 打印varible("参数"),varible="私有" 重新赋值,打印varible("私有") 执行完毕

    </p>
    <script>
        var varible = "全局";
        function fn(varible){
            console.log(varible);
          var varible = "私有";
          console.log(varible);
        }
        console.log(varible);
        fn("参数")

    </script>
</body>
</html>

点击查看详情

 

以上是关于私有作用域的初级理解的主要内容,如果未能解决你的问题,请参考以下文章

理解JS 模块化

js作用域的销毁不立即销毁不销毁

作用域

Atitit 作用域的理解attilax总结

预解释的初级理解

关于 js 的作用域的对话过程的理解