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

var、let、const关键字的特性,以及let、const暂时性死区的作用

var、let和const都是JavaScript中的关键字,用于声明变量。

var关键字声明的变量是函数作用域或全局作用域的,它在整个函数或全局范围内都是可用的。var没有块级作用域。

let关键字声明的变量是块级作用域的,它只在包含它的代码块中可用。let声明的变量可以在同一作用域内重新赋值。

const关键字声明的变量也是块级作用域的,它所声明的变量在初始化后不能被重新赋值。这意味着,const常量的值不可变。

以下是let和const的暂时性死区(Temporal Dead Zone,TDZ)的例子:

console.log(x); // undefined
var x = 1;console.log(y); // ReferenceError: y is not defined
let y = 2;console.log(z); // ReferenceError: z is not defined
const z = 3;

在第一个例子中,var x 声明的变量在整个函数作用域都是可用的,并且当其被访问时,其值为 undefined。

在第二个例子中,let关键字声明的变量let y只在其所在的代码块内有效。在代码块之前访问它将会引发ReferenceError错误,这就是暂时性死区的作用。

在第三个例子中,const关键字声明的变量const z也会遇到暂时性死区的问题,与let类似。

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

相关文章:

  • IDEA 高分辨率卡顿优化
  • 【AIGC】一起学习prompt提示词(4/4)【经典】【15种提示词技巧】
  • Linux实战一天一个小指令--《文件管理/文件查找》
  • CocosCreator3.8神秘面纱 CocosCreator 项目结构说明及编辑器的简单使用
  • JJJ:python学习笔记
  • SpringSecurity6从入门到上天系列第七篇:讲明白SpringBoot的自动装配完善上篇文章中的结论
  • ClickHouse 原理解析之基础知识总结
  • 最小花费——最短路
  • Spark DataFrame join后移除重复的列
  • NextJS工程部署到阿里云linux Ecs
  • 汽车以太网IOP测试新利器
  • 高防IP是什么?如何隐藏源站IP?如何进行防护?
  • ElasticSearch---查询es集群状态、分片、索引
  • Angular 使用教程——基本语法和双向数据绑定
  • 【ASP.NET】Hello World
  • AI创作系统ChatGPT网站源码+支持最新GPT-Turbo模型+支持DALL-E3文生图/AI绘画源码
  • C#_查找图片(按键精灵找图)
  • C#中.NET Framework4.8 控制台应用通过EF访问新建数据库
  • 无防御香港服务器如何防CC
  • MyBatis的插件能在哪些地方进行拦截?
  • 【BUG库】 记录自己学习工作中遇到的程序BUG
  • 卡尔曼家族从零解剖-(07) 高斯分布积分为1,高斯分布线性变换依旧为高斯分布,两高斯函数乘积仍为高斯。
  • 设计模式-访问者模式(Visitor)
  • C++二分查找算法:132 模式解法二枚举2
  • JavaWeb-HTML
  • 新外卖霸王餐小程序、H5、微信公众号版外卖系统源码
  • LeetCode - #89 格雷编码
  • 11.3SpringMVC
  • c语言从入门到实战——数组指针与函数指针
  • Rust图形界面编程:egui平直布局