沉梦手记 沉梦手记
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM
  • 新特性
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 数据库基础
  • MySql
  • Redis
  • 达梦数据库
  • Spring
  • SpringBoot
  • Mybatis
  • Shiro
  • 设计须知
  • UML画图
  • 权限校验
  • 设计模式
  • API网关
  • 网络通信
  • 消息队列
  • SpringCloud
  • 分布式事务
  • 云存储
  • 搜索引擎
  • 前端基础
  • Vue
  • React
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • 运维与部署
  • 音视频处理
  • 随笔
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
Github (opens new window)

沉梦听雨

时间是最好的浸渍剂,而沉淀是最好的提纯器🚀
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM
  • 新特性
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 数据库基础
  • MySql
  • Redis
  • 达梦数据库
  • Spring
  • SpringBoot
  • Mybatis
  • Shiro
  • 设计须知
  • UML画图
  • 权限校验
  • 设计模式
  • API网关
  • 网络通信
  • 消息队列
  • SpringCloud
  • 分布式事务
  • 云存储
  • 搜索引擎
  • 前端基础
  • Vue
  • React
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • 运维与部署
  • 音视频处理
  • 随笔
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
Github (opens new window)
  • 前端基础

    • 前端环境搭建
    • HTML与CSS
    • JavaScript知识点整理

      • 什么是ES6?
      • 声明变量(作用域)
        • 基本类型
        • 对象类型
        • 类型
        • 运算符与表达式
        • 流程控制
        • API
      • Axios入门
    • Vue

    • React

    • 前端学习
    • 前端基础
    • JavaScript知识点整理
    沉梦听雨
    2023-07-06
    目录

    声明变量(作用域)

    # 声明变量(作用域)

    # 1) let ⭐️

    let 变量名 = 值;
    
    1
    • let 声明的变量可以被多次赋值,例如
    let a = 100;  // 初始值是 100
    a = 200;	  // ok, 被重新赋值为 200
    
    1
    2

    # 2) const ⭐️

    • const 修饰的叫常量,只能赋值一次
    const b = 300; // 初始值是 300
    b = 400;	   // error, 不能再次赋值
    
    1
    2
    • const 并不意味着它引用的内容不可修改,例如
    const c = [1,2,3];
    c[2] = 4; 	        // ok, 数组内容被修改成 [1,2,4]
    c = [5,6];			// error, 不能再次赋值
    
    1
    2
    3

    总结:const 修饰的变量,只能被赋值一次但内容可以修改

    # 3) var

    var 声明的变量可以被多次赋值(let 也是),例如

    var f = 100;
    f = 200;
    
    1
    2

    # let 和 var 的区别?

    作用域(即范围)不同。

    首先,什么是范围?

    范围是指:来自我们程序不同部分的变量的可访问性。

    • 使用 var 声明时,JavaScript 变量具有全局范围和函数范围。
    • 当使用 let 声明变量时,ES6 为 JavaScript 带来了块级范围。
    {
        var a = "🍉";
        let b = "⛳";
    }
    console.log(a);
    console.log(b);
    Uncaught ReferenceError: b is not defined // b 没有定义
    
    1
    2
    3
    4
    5
    6
    7

    可以看出,我们使用 var 关键字在 block 中定义了变量 “a”,可以全局访问。所以 var 声明的变量是全局的。

    但是,我们希望变量在 block 中生效,退出 block 时不可访问。然后,可以使用 ES6 新的块级作用域关键字 let 来声明变量,就像这里的变量 b 一样,会报错说 b 没有定义。

    上次更新: 2026/11/5 11:56:09
    什么是ES6?
    基本类型

    ← 什么是ES6? 基本类型→

    Theme by Vdoing | Copyright © 2023-2026 沉梦听雨 | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式