【微信小程序】let和const-综合实训

ops/2025/1/16 17:08:24/

letconst 都是用于声明变量的关键字,它们与传统的 var 关键字相比,有很多不同之处。

let 声明块级作用域变量,可再赋值;const 声明块级作用域常量,不可再赋值。

以下是它们的详细介绍:

一、基本概念

  • let

    • let 声明的变量只在块级作用域(用 {} 包裹的区域)内有效。它解决了 var 声明的变量存在变量提升和作用域链问题。例如:

    {let a = 10;
    }
    console.log(a); // ReferenceError: a is not defined

    在这个例子中,a 只在 {} 这个块级作用域内有效,外部无法访问。

    • let 声明的变量在声明之前是不可用的,这被称为“暂时性死区”。比如:

    console.log(b); // ReferenceError: b is not defined
    let b = 20;

    let b = 20; 这行代码之前,b 是不可用的,这避免了像 var 那样变量提升导致的错误使用未初始化的变量的情况。

  • const

    • const 用于声明常量,它声明的变量必须立即初始化,且一旦赋值后就不能再被重新赋值。例如:

    const PI = 3.14;
    // PI = 3.15; // TypeError: Assignment to constant variable.

    在这个例子中,PI 被声明为常量,赋值为 3.14 后,再尝试修改它的值会报错。

    • const 声明的常量也具有块级作用域的特性,和 let 一样,只在声明它的块级作用域内有效。例如:

    {const MAX = 100;
    }
    console.log(MAX); // ReferenceError: MAX is not defined

    MAX 只在 {} 内部有效,外部无法访问。

二、使用场景

  • let

    • 当需要在某个特定的代码块内(如循环体、条件语句块等)使用一个变量,并且这个变量的值可能会在代码块内发生变化时,使用 let 是合适的。例如在循环中:

    for (let i = 0; i < 10; i++) {console.log(i);
    }
    // i 在循环外部不可用

    这里使用 let 声明循环变量 ii 只在循环体内有效,避免了 var 声明循环变量可能导致的在循环外部意外访问到循环变量的情况。

  • const

    • 当需要定义一个值在程序运行过程中不会改变的常量时,应该使用 const。比如定义一些配置常量、数学常量等。例如在小程序>微信小程序中定义 API 请求的基础 URL:

    const BASE_URL = 'https://api.example.com';

    使用 const 可以清楚地表明这个值是不应该被修改的,有助于代码的可读性和维护性。同时,对于对象或数组类型的常量,虽然不能重新赋值给另一个对象或数组,但可以修改其内部的属性或元素。例如:

    const user = {name: '张三',age: 20
    };
    user.name = '李四'; // 合法,修改对象内部属性
    // user = {}; // TypeError: Assignment to constant variable. 不能重新赋值为一个新的对象

小程序>微信小程序开发中,合理使用 letconst 可以使代码更加清晰、规范,减少一些常见的变量作用域和变量提升相关的问题。


http://www.ppmy.cn/ops/150603.html

相关文章

【漏洞分析】DDOS攻防分析

0x00 UDP攻击实例 2013年12月30日&#xff0c;网游界发生了一起“追杀”事件。事件的主角是PhantmL0rd&#xff08;这名字一看就是个玩家&#xff09;和黑客组织DERP Trolling。 PhantomL0rd&#xff0c;人称“鬼王”&#xff0c;本名James Varga&#xff0c;某专业游戏小组的…

JS的事件循环机制

<script>setTimeout(()>{console.log(1)},1000)setTimeout(()>{console.log(2)},3000)var start Date.now();while ( (Date.now() - start) < 10000 ){}console.log(3)</script>执行如下代码会发现先打印3&#xff0c;再打印1 再打印2。 现象本质还是因为…

【Elasticsearch】高亮搜索:从原理到Web呈现

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s,热衷于探…

Unity解决滑动条的value值的滑动条消失问题

在这里我们看到原本的value的滑动条消失了 解决办法 把编辑器的边框往外面拉一下就可以了&#xff08;之前遇到这个问题还重启了几次unity没想到居然是这个问题&#xff09;

八 rk3568 android11 AP6256 蓝牙调试

一 经典蓝牙 经典蓝牙默认可以工作, 验证可以连接 蓝牙鼠标,键盘, 连接手机等等, 在 系统设置里打开蓝牙 ,扫描设备,配对连接即可。 注: 连接 ANDROID 手机的坑 1 手机连接之后空闲状态会断开 ,变成 配对的设备不是已连接,是正常,使用时又会自动 连接 2 手机传…

13:00面试,13:08就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到9月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

MySQL之DDL语言

目录 一、数据库的基本操作 1、创建数据库 语法&#xff1a; 示例&#xff1a; 2、修改数据库 语法&#xff1a; 示例&#xff1a; 3、删除数据库 语法&#xff1a; 示例&#xff1a; 4、查询数据库 语法&#xff1a; 5、使用数据库 语法&#xff1a; 二、数据表…

vue.js+websocket+mongodb实现纯粹的聊天室项目

vue.jswebsocketmongodb实现纯粹的聊天室项目&#xff01;下面的项目的构建过程和代码展示。 1&#xff1a;项目的整体结构图 chatroom/ │ ├── backend/ # 后端服务目录 │ ├── config/ # 配置文件 │ │ └…