JavaScript 中 let 的使用

        在 ES2015 之前,JavaScript 只有两种类型的作用域:全局作用域函数作用域

  1. 全局(在函数之外)声明的变量拥有全局作用域全局变量可以在 JavaScript 程序中的任何位置访问。
    var carName = "porsche";
    
    // 此处的代码可以使用 carName
    
    function myFunction() {
      // 此处的代码也可以使用 carName
    }
  2. 局部(函数内)声明的变量拥有函数作用域局部变量只能在它们被声明的函数内访问。

    // 此处的代码不可以使用 carName
    
    function myFunction() {
      var carName = "porsche";
      // code here CAN use carName
    }
    
    // 此处的代码不可以使用 carName
  3. 在 ES2015 之前,JavaScript 是没有块作用域的。从ES2015 开始可以使用 let 关键词声明拥有块作用域的变量。在块 { } 内声明的变量无法从块外访问:

    { 
      let x = 10;
    }
    // 此处不可以使用 x

    简单例子来看下let和var的区别:

    //使用var
    var x = 10;
    // 此处 x 为 10
    { 
      var x = 6;
      // 此处 x 为 6
    }
    // 此处 x 为 6, 在块中重新声明变量也将重新声明块外的变量
    /********************************/
    //使用let
    var x = 10;
    // 此处 x 为 10
    { 
      let x = 6;
      // 此处 x 为 6
    }
    // 此处 x 为 10, 在块中重新声明变量不会重新声明块外的变量
  4.  使用 JavaScript 的情况下,全局作用域是 JavaScript 环境。在 HTML 中,全局作用域是 window 对象。

      通过 var 关键词定义的全局变量属于 window 对象:

    var carName = "porsche";
    // 此处的代码可使用 window.carName

      通过 let 关键词定义的全局变量不属于 window 对象:

    let carName = "porsche";
    // 此处的代码不可使用 window.carName
  5. 在相同的作用域,或在相同的块中,使用 var 和let重新声明 JavaScript 变量遵循以下规则:

    {
      var x = 10;  // 现在,x 为 10
      var x = 6;   // 现在,x 为 6
    }
    
    {
      var x = 10;
      let x = 6;   // 不允许
    }
    
    {
      let x = 10;
      var x = 6;   // 不允许
    }
    
    {
      let x = 10;
      let x = 6;   // 不允许
    }
    
    
  6. 通过 var 声明的变量会提升到顶端。通过 let 定义的变量不会被提升到顶端。在声明 let 变量之前就使用它会导致 ReferenceError。

    // 在此处,可以使用 carName
    var carName;
    // 在此处,不可以使用 carName
    let carName;
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值