VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > JavaScript教程 >
  • JS高级---作用域,作用域链和预解析

作用域,作用域链和预解析

   
  •  变量---->局部变量和全局变量,
  •  作用域: 就是变量的使用范围
 
  1.     局部作用域和全局作用域
  2.     js中没有块级作用域---一对括号中定义的变量,这个变量可以在大括号外面使用
  3.     函数中定义的变量是局部变量
 
    while (true) {
      var num = 10;
      break;
    }
    console.log(num); //10

 

    {
      var num2 = 100;
    }
    console.log(num2); //100

 

    if (true) {
      var num3 = 1000;
    }
    console.log(num3); //1000

 

    function f1() {
      //局部变量
      var num = 10;
    }
    console.log(num); //underfined 局部变量,外面访问不到

 

    作用域链: 变量的使用, 从里向外, 层层的搜索, 搜索到了就可以直接使用了
    层层搜索, 搜索到0级作用域的时候, 如果还是没有找到这个变量, 结果就是报错
 
复制代码
    var num = 10; //作用域链 级别:0
    var num2 = 20;
    var str = "abc"
    function f1() {
      var num2 = 20;
      function f2() {
        var num3 = 30;
        console.log(num);
      }
      f2();
    }
    f1(); //10
复制代码

 

预解析: 就是在浏览器解析代码之前, 把变量的声明和函数的声明提前(提升)到该作用域的最上面
 
变量提前,值没有提前
var =num
console.log(num);
num=10;
 
    // 变量的提升
    console.log(num);
    var num = 100; //undefinded

 

    //函数的声明被提前了
    f1();
    function f1() {
      console.log("这个函数,执行了");
    }

 

报错

    f2()
    var f2 = function () {
      console.log("小杨好帅哦");
    };

 

 
你好,我是Jane,如果万幸对您有用,请帮忙点下推荐,谢谢啦~另外,咱们闪存见哦~

相关教程