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

JavaScript的let、var、const

请添加图片描述
这张图片主要介绍了JavaScript中的三种变量声明方式:letvarconst

1. let

  • 含义let是现在实际开发中常用的变量声明方式。
  • 特点
    • 块级作用域:let声明的变量只在其所在的块级作用域内有效。例如:
      {let x = 10;
      }
      console.log(x); // 报错,x在块级作用域外不可访问
      
    • 不存在变量提升:在声明之前使用let变量会报错。例如:
      console.log(y); // 报错
      let y = 20;
      
    • 不允许重复声明:在同一个作用域内不能用let重复声明已经存在的变量,会报错。例如:
      let z = 5;
      let z = 10; // 报错
      

2. var

  • 含义var是以前的变量声明方式,会有很多问题。
  • 特点
    • 函数级作用域:var声明的变量的作用域是函数级的。例如:
      function test() {if (true) {var a = 10;}console.log(a); // 10,在if语句块外仍能访问a
      }
      test();
      
    • 存在变量提升:使用var声明的变量会被提升到函数顶部,但变量的值是undefined,直到实际赋值语句执行。例如:
      console.log(b); // undefined
      var b = 20;
      
    • 允许重复声明:在同一个作用域内可以多次用var声明同一个变量,后面的声明会覆盖前面的声明。例如:
      var c = 5;
      var c = 10;
      console.log(c); // 10
      

3. const

  • 含义const类似于let,但是变量的值无法被修改。
  • 特点
    • 块级作用域:与let一样具有块级作用域。例如:
      {const d = 30;
      }
      console.log(d); // 报错,d在块级作用域外不可访问
      
    • 不存在变量提升:在声明之前使用const变量会报错。例如:
      console.log(e); // 报错
      const e = 40;
      
    • 不允许重复声明:在同一个作用域内不能用const重复声明已经存在的变量,会报错。例如:
      const f = 15;
      const f = 20; // 报错
      
    • 常量特性:声明后不能重新赋值。但是如果声明的是对象或数组,其内部属性或元素可以被修改。例如:
      const obj = {name: 'Alice'};
      obj.name = 'Bob'; // 允许,修改对象的属性
      // obj = {name: 'Charlie'}; // 报错,不能重新赋值
      

在现代JavaScript开发中,letconst通常比var更受欢迎,因为它们的块级作用域和不存在变量提升的特性有助于编写更清晰、更不易出错的代码,而const在需要定义常量时非常有用。

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

相关文章:

  • C语言-数学基础问题
  • 解决单元测试时找不到类名
  • 从零开始-VitePress 构建个人博客上传GitHub自动构建访问
  • 【案例学习】如何使用Minitab实现包装过程的自动化和改进
  • 【ArcGISPro】使用AI提取要素-土地分类(sentinel2)
  • 深度解析:Nginx模块架构与工作机制的奥秘
  • 分布式kettle调度平台v6.4.0新功能介绍
  • 企业数字化转型现状
  • 极客大挑战2024wp
  • 将django+vue项目发布部署到服务器
  • 函数类型注释和Union联合类型注释
  • python画图|无坐标轴自由划线操作fig.add_artist(lines.Line2D()函数
  • MacOS系统上Jmeter 录制脚本遇到的证书坑位
  • 网络层协议IP
  • 《硬件架构的艺术》笔记(七):处理字节顺序
  • 反向代理模块
  • 风尚云网前端学习:一个简易前端新手友好的HTML5页面布局与样式设计
  • spacy 安装 en_core_web_sm
  • SpringBoot(9)-Dubbo+Zookeeper
  • 嵌入式的C/C++:深入理解 static、const 与 volatile 的用法与特点
  • 信创改造 - TongRDS 替换 Redis
  • 周志华深度森林deep forest(deep-forest)最新可安装教程,仅需在pycharm中完成,超简单安装教程
  • python VS c++
  • 提升软件测试报告的质量:Allure2中添加用例失败截图、日志、HTML块和视频的方法
  • 基于IPMI的服务器硬件监控指标解读
  • VUE字符串转日期加天数
  • Android12 mtk设置插充电器自动开机
  • JSON路径工具类`JsonPathUtil`的实现与应用
  • 人名分类器(nlp)
  • 斐波那契数列 相关问题 详解