wxvirus wxvirus
首页
  • Go文章

    • Go语言学习
  • Rust

    • Rust学习
  • Java

    • 《Java》
  • Python文章

    • Python
  • PHP文章

    • PHP设计模式
  • 学习笔记

    • 《Git》
  • HTML
  • CSS
  • JS
  • 技术文档
  • GitHub技巧
  • 刷题
  • 博客搭建
  • 算法学习
  • 架构设计
  • 设计模式
  • 学习
  • 面试
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

无解的lifecycle

let today = new Beginning()
首页
  • Go文章

    • Go语言学习
  • Rust

    • Rust学习
  • Java

    • 《Java》
  • Python文章

    • Python
  • PHP文章

    • PHP设计模式
  • 学习笔记

    • 《Git》
  • HTML
  • CSS
  • JS
  • 技术文档
  • GitHub技巧
  • 刷题
  • 博客搭建
  • 算法学习
  • 架构设计
  • 设计模式
  • 学习
  • 面试
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • HTML

  • CSS

  • JS

    • let和const
      • js实现todolist
      • 模板字符串
      • 函数
      • Set和Map数据类型
      • 数组的扩展方法
    • vue3

    • 特效

    • framework

    • 页面
    • JS
    wxvirus
    2021-10-19

    let和const

    # let和const

    以前使用var定义变量时,会出现 以下情况

    var a;
    console.log(a);
    
    a = 2;
    
    
    // undefined
    
    1
    2
    3
    4
    5
    6
    7

    ES就提供了一个let

    console.log(a);
    
    let a = 10;
    
    // 这里会报错
    
    1
    2
    3
    4
    5

    警告

    Cannot access 'a' before initialization

    告诉我们不能在使用之前初始化。

    let的特点:

    1. 声明变量、没有变量提升

    2. 是一个块级作用域

      console.log(b);
      
      if (1 === 1) {
          // 在该作用域里
          let b = 10;
      }
      
      // b is not defined
      
      1
      2
      3
      4
      5
      6
      7
      8
    3. 不能重复声明

      var声明的变量可以有覆盖性

      let声明的变量不可以重复声明

      let a = 10;
      let a = 2;
      
      
      // Identifier 'a' has already been declared
      
      1
      2
      3
      4
      5

    const在别的语言里代表着常量,和let也有着相似的特点,它也确实是用来声明常量的,一旦被声明,无法修改;

    const声明的变量是不允许被修改的

    const声明的对象里的属性的值你可以修改,但是不能修改对象本身

    const person = {
        name: "无解"
    }
    
    person.name = "lalala";
    console.log(person);
    
    1
    2
    3
    4
    5
    6
    {name: 'lalala'}
    
    1
    // 错误示范
    person = {
        age: 20
    }
    
    // Assignment to constant variable.
    
    1
    2
    3
    4
    5
    6

    # 案例

    for循环经典案例

    var arr = [];
    for (var i = 0; i < 10; i++) {
        arr[i] = function () {
            return i; // 使用var声明的最后的i就是10
        }
    }
    
    console.log(arr); // 保存了10个函数
    
    console.log(arr[5]()); // 调用第五个函数  结果为10
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    使用let和const来进行修改

    const arr = [];
    for (let i = 0; i < 10; i++) {
        // 此时只会在当前作用域里有用
        arr[i] = function () {
            return i;
        }
    }
    
    console.log(arr); // 保存了10个函数
    
    console.log(arr[5]()); // 调用第五个函数  使用 const和let后 结果为 5
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    不会污染全局变量

    let RegExp = 10;
    console.log(RegExp);
    console.log(window.RegExp);
    
    
    1
    2
    3
    4
    输出结果
    
    10
    let和const.html:37 ƒ RegExp() { [native code] }
    
    1
    2
    3
    4

    提示

    建议:在默认情况下使用const,而只有在你知道变量值需要被修改的时候一定使用let

    编辑 (opens new window)
    #let#const
    上次更新: 2021/10/19, 23:26:27
    CSS-function汇总
    js实现todolist

    ← CSS-function汇总 js实现todolist→

    最近更新
    01
    centos7安装redis6文档记录
    02-14
    02
    portainer的安装
    02-11
    03
    gin自定义验证器和翻译器
    02-11
    更多文章>
    Theme by Vdoing | Copyright © 2021-2023 wxvirus
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式