zoukankan      html  css  js  c++  java
  • 《你不知道的JavaScript(上)》笔记——let和const

    笔记摘自:《你不知道的JavaScript(上)》第3章 函数作用域和块作用域

    let

    1.let 关键字可以将变量绑定到所在的任意作用域中

    2.let 为其声明的变量隐式地劫持了所在的块作用域

    3. 通常来讲,显示的代码优于隐式或一些精巧但不清晰的代码。

    4.只要声明是有效的,在声明中的任意位置都可以使用{..}括号来为let创建一个用于绑定的块。

    5.使用let进行的声明不会在块作用域中进行提升。声明的代码被运行之前,声明并不存在。

    例如:

    {
        console.log(bar); // Reference Error!(引用错误)
        let bar = 2;
    }

     6.let for循环

    先看下var for循环的结果

    for (var i = 0; i < 10; i++) {
        console.log(i); // 0,1,2,3,4,5,6,7,8,9
    }
    console.log(i); // 10

    再看下使用let for循环的结果

    for (let i = 0; i < 10; i++) {
        console.log(i); // 0,1,2,3,4,5,6,7,8,9
    }
    console.log(i); // ReferenceError

    for循环头部的let不仅将i绑定到了循环的每个迭代中,确保使用上一个循环的每一个迭代中,确保使用上一个循环迭代结束时的值重新进行赋值。

    const

    1.const 和let一样可以用来创建块作用域变量,但其值是固定的(常量),之后任何试图修改值的操作都会引起错误。

    var foo = true;
    if (foo) {
      var a = 2;
      const b = 3; //包含在if中的块作用域常量
      
      a = 3; // 正常
      b = 4;  // 错误!      
    }
    console.log(a); // 3
    console.log(b); // ReferenceError
  • 相关阅读:
    bzoj 2120 数颜色 带修改莫队
    luogu 2709 小B的询问 莫队
    bzoj 2002 [Hnoi2010]Bounce 弹飞绵羊 分块
    bzoj 4765 普通计算姬 dfs序 + 分块
    loj 数列分块入门 6 9(区间众数)
    loj 数列分块入门 5 7 8
    AtCoder Grand Contest 021 D
    Codeforces Round #466
    office 威胁检测
    修改macos的启动LOGO
  • 原文地址:https://www.cnblogs.com/cathy1024/p/10450787.html
Copyright © 2011-2022 走看看