javascript预解析包括变量提升和函数提升

<!DOCTYPE html>

<html lang="en">

 

<head>

  <meta charset="UTF-8">

  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <meta http-equiv="X-UA-Compatible" content="ie=edge">

  <title>Document</title>

  <script>

    // javascript预解析包括变量提升和函数提升

    // 案例二

    var num = 20;

 

    function fn() {

      console.log(num);

      var num = 20;

      console.log(num);

    }

    fn();

 

    // 相当于以下代码

    // var num;

    // function fn(){

    //   var num;

    //   console.log(num);

    //   num = 20;

    //   console.log(num);

    // }

    // num = 20;

    // fn();

    

    // 案例三

    var a = 18;

    f1();

 

    function f1() {

      var b = 9;

      console.log(a);

      console.log(b);

      var a = '123';

    }

 

    // 相当于以下代码

    // var a;

    // function f1() {

    //   var b;

    //   var a;

    //   b = 9;

    //   console.log(a);

    //   console.log(b);

    //   a = '123';

    // }

    // a = 18;

    // f1();

 

    // 案例四

    f1();

    console.log(c);

    console.log(b);

    console.log(a);

    function f1(){

      var a = b = c = 9;//b 和 c 直接赋值 没有var 声明 当全局变量看

      console.log(a);

      console.log(b);

      console.log(c);

    }

 

    // 相当于以下代码

    function f1(){

      var a;

      a = 9;

      b = 9;

      c = 9;

      console.log(a);//a = 9;

      console.log(b);//b = 9;

      console.log(c);//c = 9;

    }

    f1();

    console.log(c);//c = 9;

    console.log(b);//b = 9;

    console.log(a);//a = undefined

    

  </script>

</head>

 

<body>

 

</body>

 

</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值