当前位置: 首页 > news >正文

JavaScript let 和 const

在JavaScript中,`let`和`const`是用于声明变量的关键字。

`let`关键字用于声明一个块级作用域的变量。块级作用域是指在一个代码块(通常是在花括号 `{}` 内部)中声明的变量只在该代码块内部有效。例如:

```javascript
function example() {
  let x = 10;
  if (true) {
    let y = 20;
    console.log(x); // 输出:10
    console.log(y); // 输出:20
  }
  console.log(x); // 输出:10
  console.log(y); // 报错:y未定义
}
```

在上面的例子中,`x`是在函数`example`的作用域内声明的变量,可以在函数内部的任何位置访问。`y`是在`if`语句块内声明的变量,它只在该语句块内部有效。

`const`关键字用于声明一个常量。常量是一种不能被重新赋值的变量,其值在声明后不能被修改。例如:

```javascript
const PI = 3.14;
console.log(PI); // 输出:3.14

PI = 3.14159; // 报错:无法重新分配常量
```

在上面的例子中,`PI`是一个常量,其值为3.14。由于是常量,不能对其进行重新赋值,所以尝试修改`PI`的值会导致报错。

使用`let`和`const`的选择取决于变量的可变性需求。如果变量的值需要在声明后被修改,可以使用`let`来声明变量。如果变量的值在声明后不应被修改,应使用`const`来声明常量。

当使用`let`声明变量时,变量的值可以被修改。以下是一个使用`let`声明的变量的例子:

```javascript
let count = 0;
console.log(count); // 输出:0

count = 5;
console.log(count); // 输出:5

count += 1;
console.log(count); // 输出:6
```

在上面的例子中,我们使用`let`声明了一个变量`count`,并将其初始值设置为0。然后,我们通过赋予新值和增量操作来修改变量的值,并通过`console.log`打印出结果。

当使用`const`声明常量时,变量的值不能被重新赋值。以下是一个使用`const`声明常量的例子:

```javascript
const PI = 3.14;
console.log(PI); // 输出:3.14

PI = 3.14159; // 报错:无法重新分配常量
```

在上面的例子中,我们使用`const`声明了一个常量`PI`,并将其值设置为3.14。当尝试重新分配新值给常量`PI`时,会导致报错。

需要注意的是,使用`const`声明的常量是不可变的,但如果常量是一个对象,对象的属性是可以修改的。例如:

```javascript
const person = {
  name: "John",
  age: 30
};

console.log(person.name); // 输出:John

person.name = "Jane";
console.log(person.name); // 输出:Jane
```

在上面的例子中,`person`是一个常量,但我们可以修改其属性`name`的值。这是因为常量`person`保存的是对象的引用,而不是对象本身。所以,我们可以修改对象的属性,但不能将新的对象分配给常量。

相关文章:

JavaScript let 和 const

在JavaScript中,let和const是用于声明变量的关键字。 let关键字用于声明一个块级作用域的变量。块级作用域是指在一个代码块(通常是在花括号 {} 内部)中声明的变量只在该代码块内部有效。例如: javascript function example() {…...

云原生下多集群的监控系统背景、架构设计与实现

随着云原生技术的普及,越来越多的企业开始采用多集群部署方案来提高系统的可用性和灵活性。在这种情况下,如何有效地监控多个集群的运行状态,成为了云原生架构下的一个重要问题。 多集群监控系统需要考虑以下几个方面的问题: 监…...

利用OpenCV处理图像

OpenCV是非常流行的图像处理库,下面介绍一下其对图像的基本操作。 1. 安装与环境 安装还有点儿复杂的,但百度几篇博客基本能解决,这里就不多说了。 安装好后,要在工程中使用OpenCV的头文件和库,需要在CMakeLists.tx…...

【面试实战】SpringIoC、AOP、MVC面试实战

version:1.0 文章目录 SpringSpring基础 / IoC🙎‍♂️面试官:举例Spring的模块?🙎‍♂️面试官:Spring、SpringMVC、Spring Boot关系?🙎‍♂️面试官:说说对SpringIoC的了解?🙎‍♂️面试官:什么是Spring Bean?🙎‍♂️面试官:Bean的作用域?🙎‍♂️面…...

[Redis 分布式锁 ]

目录 前言: 使用场景: 基于 Redis 实现分布式锁的详细示例: 使用示例: 依赖: Redis分布式锁控制并发访问: 前言: 记录一些小笔记 , 如果对你有帮助 那就更好了 使用场景: Redis 实现分布式锁的使用场景包括: 防止重复操作&#xf…...

如何创建Vue实例?Vue实例有哪些属性和方法

Vue实例就是Vue的实例化对象,就像你有一个iPhone,那么iPhone就是你的实例化对象。要创建Vue实例,就像你想拥有一部iPhone一样,首先要有一个设计图。 这个设计图就相当于Vue实例的options对象,你可以设置它的属性&…...

InnoDB Cluster集群Mysql Router代理层最佳实践

InnoDB Cluster 集群 & Mysql-Router 代理层 前言 Mysql是现今最常用的关系型数据库之一,高可用一直是我们对软件服务的要求。常见的Mysql高可用是主从配置,在主节点挂掉后需要依赖监控脚本进行主从切换将从节点升级,后台服务代码层面也…...

RabbitMQ系列-概念及安装

1. 消息队列 消息队列是指利用队列这种数据结构进行消息发送、缓存、接收,使得进程间能相互通信,是点对点的通信 而消息代理是对消息队列的扩展,支持对消息的路由,是发布-订阅模式的通信,消息的发送者并不清楚消息的…...

进程间通信之共享内存

进程间通信之共享内存 1.共享内存机制2.两种常用共享内存方式3.补充一下:linux中shm与shmm的区别4.IPC通信System V版本的共享内存shm5.存储映射共享I/O(mmap函数)1.共享内存机制 是允许两个或多个进程(不相关或有亲缘关系)访问同一个逻辑内存的机制。它是共享和传递数据的一…...

网络连接中的舔狗协议

舔狗网络协议 (discard protocol) 最近互联网上,“舔狗” 这个词语很火,也衍生出来很多梗(快速说出互联网 4 大舔狗!!!)。然后今天偶然间看到了一个 RFC 文档, 发现了一…...

一分钟了解乐观锁、悲观锁、共享锁、排它锁、行锁、表锁以及使用场景

大家好,我是冰点,今天给大家带来,关于MySQL中的锁的使用。 我首先提个问题,大家知道什么是 乐观锁、悲观锁、共享锁,、排它锁、行锁、表锁,以及每种锁的使用场景吗? !! 背景:最近在各…...

【C++】C++ 中的 IO 流

文章目录 一、C语言的输入输出二、什么是流三、C IO 流1、C 标准 IO 流2、C 文件 IO 流 四、stringstream 介绍 一、C语言的输入输出 在C语言中我们使用最频繁的输入输出方式是 scanf () 与 printf(): scanf():从标准输入设备 (键盘) 读取数据&#xf…...

QFuture的使用

QFuture 是 Qt 提供的一个类&#xff0c;用于表示异步操作的返回值或状态。异步操作指的是那些不会阻塞主线程的操作&#xff0c;例如文件读写、网络请求、计算等等。 在执行异步操作时&#xff0c;可以使用 QtConcurrent 模块提供的函数 (QFuture<T> QtConcurrent::run…...

通过dockerfile将nginx、前端和后端封装成一个镜像

1、内容如下 2、dist文件 就是vue项目的打包文件 3、jar包文件 就是springboot的打包文件 4、编写Dockerfile #引用 jdk1.8作为基础镜像,这个jdk1.8是我自己用linux版本的jdk打包的,具体操作可以看 #https://blog.csdn.net/qq_38639813/article/details/129384923中将jd…...

如何利用CiteSpace快速锁定领域内最新研究热点并制作精美的可视化专题图?

【基于Citespace和vosviewer文献计量学相关论文 】 ​ 01 文献计量学方法与应用 1. 文献计量学方法基本介绍 2. 与其他综述方法区别联系 3. 各学科领域应用趋势近况 4. 主流分析软件优缺点对比 5. 经典高分10SCI思路复盘 6. 软件安装与Java环境配置 02 主题确定、数据检…...

嵌入式开发从入门到精通之第二十二节:蓝牙芯片CC254x ADC 电压测量

目录 1. CC254x ADC原理 参考电压 采样通道 采样率 采样时间...

北邮22信通:二叉树显示路径的两种方法 递归函数保存现场返回现场的实例

北邮22信通一枚~ 跟随课程进度每周更新数据结构与算法的代码和文章 持续关注作者 解锁更多邮苑信通专属代码~ 获取更多文章 请访问专栏~ 北邮22信通_青山如墨雨如画的博客-CSDN博客 一.讲解 要想实现二叉树的路径显示&#xff0c;我们要按照…...

vue 3 第二十八章:组件十二(组件的v-model、多v-model)

文章目录 1. 基本使用2. 使用conputed实现3. v-model 的参数4. 多 v-model 的使用5. v-model 修饰符 在 Vue 3 中&#xff0c; v-model 指令的使用更加灵活&#xff0c;可以绑定任意属性和事件。例如&#xff0c;我们可以使用 v-model:checked 指令来绑定单选框或复选框的 c…...

LCD 显示

概述 LCD显示控制模块接收 MCU 送过来的数据&#xff0c;按一定规律储存在显示 RAM 中&#xff0c;并根据显示 RAM 中的数据驱动 LCD 显示屏来实现期望的字符显示功能。 主要特点&#xff1a; ⚫ 最大支持 840 、 642 、 444 的显示段数 ⚫ 1/3bias 、 1/4bia s ⚫ 16 级灰度可…...

互联网医院开发|在线问诊系统架构设计功能有哪些?

互联网医院会增加更多的医疗业务&#xff0c;电话问诊、视频问诊、个性化的医疗套餐等&#xff0c;未来互联网医院会建成围绕健康主题的深度大数据平台和多元化医疗服务生态体系&#xff0c;丰富人工智能、物联网等应用场景&#xff0c;为用户提供更好的服务体验、更低的成本、…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

腾讯云V3签名

想要接入腾讯云的Api&#xff0c;必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口&#xff0c;但总是卡在签名这一步&#xff0c;最后放弃选择SDK&#xff0c;这次终于自己代码实现。 可能腾讯云翻新了接口文档&#xff0c;现在阅读起来&#xff0c;清晰了很多&…...

BLEU评分:机器翻译质量评估的黄金标准

BLEU评分&#xff1a;机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域&#xff0c;衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标&#xff0c;自2002年由IBM的Kishore Papineni等人提出以来&#xff0c;…...

比特币:固若金汤的数字堡垒与它的四道防线

第一道防线&#xff1a;机密信函——无法破解的哈希加密 将每一笔比特币交易比作一封在堡垒内部传递的机密信函。 解释“哈希”&#xff08;Hashing&#xff09;就是一种军事级的加密术&#xff08;SHA-256&#xff09;&#xff0c;能将信函内容&#xff08;交易细节&#xf…...