1. 程式人生 > >js預解析分段的問題的區域性作用域的問題

js預解析分段的問題的區域性作用域的問題

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>$永遠的24k純帥$</title>
  <script>
    //預解析中,變數的提升,只會在當前的作用域中提升,提前到當前的作用域的最上面
    //函式中的變數只會提前到函式的作用域中的最前面,不會出去
    //預解析會分段(多對的script標籤中函式重名,預解析的時候不會衝突)

//    function f1() {
//
//      console.log(num);//undefined
//      var num=10;
//    }
//    f1();
//    console.log(num);//
    function f1() {
      console.log("哈哈");
    }

  </script>
  <script>
    f1();
    function f1() {
      console.log("嘎嘎");
    }
  </script>
</head>
<body>
</body>
</html>

 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>$永遠的24k純帥$</title>

  <script>

    //    var a = 25;
    //    function abc (){
    //      alert(a);//undefined
    //      var a = 10;
    //    }
    //    abc();
    //    console.log(a);//25


    //  var a;
    //function a() {
    //  console.log('aaaaa');
    //}
    //    console.log(a);
    //
    //   a = 1;
    //    console.log(a);//1

//    var a;
//    a = 18;
//    function f1() {
//      var b;
//      var a;
//      b = 9;
//      console.log(a);//undefined
//      console.log(b);//9
//     a = '123';
//    }
//    f1();


//    function f1() {

var a=b=c=9;
//      var a;//區域性變數
//      a=9;
//      //隱式全域性變數
//      b=9;
//      c=9;
//      console.log(a);//9
//      console.log(b);//9
//      console.log(c);//9
//    }
//    f1();
//    console.log(c);//  9
//    console.log(b);// 9
//    console.log(a);//報錯

    //console.log(parseInt(Math.random()*57+1));
  </script>
  <script>

    f1();//-----報錯
   var f1=function () {
      console.log(a);
      var a=10;
    };

    function f2() {

    }
    f2();

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