发帖  主题  评论  推荐  标签 用户 查搜   用户 密码 自动 注册  
 
面向对象 设计模式 领域驱动设计 云架构 框架 开发教程 SOA 大数据 扩展性 并发编程 EDA 分布式 函数编程

Javascript/ES6 let和const用法

  let关键词是创建绑定到任何代码块(称为块作用域block scoping)的声明,相比使用var,它提供了函数的作用域,因此在JS6中推荐使用let,let声明的变量可以再分配:

var a = 2; 
{
    let a = 3;
    console.log(a); // 3
}
console.log(a); // 2

 

我们看看let在循环中的应用

for (let i in usernames) {
  _fetchProfiles('/users/' + usernames[i], function () {
  console.log("fetched ", usernames[i]);
});
}

let 没有变量提升(hoisted),上述代码中循环每次迭代时i变量的值都是新创建的,每次回调callback都是接受它自己的i版本。

 

另外一个代码块作用域的声明是const,const声明的只读常量不可以再分配,它定义了一个常量,这个常量指向一个值,换句话说,这个值不是不可变的,只是分配给了它:

{
    const ARR = [5,6];
    ARR.push(7);
    console.log(ARR); // [5,6,7] 
    ARR = 10; // TypeError 
}

 

一些事情需要记住:

  • 当使用let关键词时,不会发生变量提升(Hoisting)
  • let和const的作用域是最靠近的代码块

 

Javascript6简明手册

 

解道移动版 | 关注解道 | 联系解道 | 关于解道 | 广告联系 | 网站地图 | 设为首页

沪ICP证12033263 如有意见请与我们联系 Powered by JdonFramework
返回顶部