当前位置: 首页 > 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`保存的是对象的引用,而不是对象本身。所以,我们可以修改对象的属性,但不能将新的对象分配给常量。

http://www.lryc.cn/news/90317.html

相关文章:

  • 云原生下多集群的监控系统背景、架构设计与实现
  • 利用OpenCV处理图像
  • 【面试实战】SpringIoC、AOP、MVC面试实战
  • [Redis 分布式锁 ]
  • 如何创建Vue实例?Vue实例有哪些属性和方法
  • InnoDB Cluster集群Mysql Router代理层最佳实践
  • RabbitMQ系列-概念及安装
  • 进程间通信之共享内存
  • 网络连接中的舔狗协议
  • 一分钟了解乐观锁、悲观锁、共享锁、排它锁、行锁、表锁以及使用场景
  • 【C++】C++ 中的 IO 流
  • QFuture的使用
  • 通过dockerfile将nginx、前端和后端封装成一个镜像
  • 如何利用CiteSpace快速锁定领域内最新研究热点并制作精美的可视化专题图?
  • 嵌入式开发从入门到精通之第二十二节:蓝牙芯片CC254x ADC 电压测量
  • 北邮22信通:二叉树显示路径的两种方法 递归函数保存现场返回现场的实例
  • vue 3 第二十八章:组件十二(组件的v-model、多v-model)
  • LCD 显示
  • 互联网医院开发|在线问诊系统架构设计功能有哪些?
  • 数据安全运营有效管理-数据安全复合治理框架和模型解读(1)
  • 【刷题之路】LeetCode 面试题 03.02. 栈的最小值
  • 如何处理图片排重(精准排重,相似排重)
  • 盐城北大青鸟“北大青鸟杯”IT精英挑战赛设中心评审隆重开赛
  • Pluma 插件管理框架
  • Leetcode11 盛最多水的容器
  • Java
  • 第十四章行为性模式—策略模式
  • Leaflet基本用法
  • Unity | HDRP高清渲染管线学习笔记:示例场景解析
  • 【Netty】Netty 编码器(十三)