javascript - javascript LET 变量 - 为什么在初始化变量之前记录时出现未定义而不是错误?
问题描述
我知道 const/let 上有很多帖子,但我找不到任何可以回答我的问题的内容:
据我所知,使用 let 声明的变量被提升到顶部,但没有像 var 一样使用 undefined 进行初始化,因此它们会在初始化之前创建一个临时死区。
在下面的示例中,我记录未定义。如果我的控制台日志在初始化之前出现,为什么它是未定义的,为什么我没有看到参考错误?
let x;
console.log("x: ", x)
x = 1;
//without x= 1 it would be undefined too
编辑
let x;
console.log("x: ", x)
最终将被阅读完全相同
console.log("x: ", x);
let x = 1
解决方案
"let x" 声明了一个变量,但还没有给它赋值。根据 Mozilla 的 JavaScript 文档 - “未分配值的变量是未定义类型。” 因此,“x”在被赋值之前的值是“未定义的”。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined#Description
推荐阅读
- javascript - 通过 if else 更改并给出 undefined 时不记得 img src
- php - Barryvdh/laravel-domPDF 返回尝试在 bool 上读取属性“名称”
- android - 无符号类型和jetpack compose
- python - Pandas 数据框过滤掉非英文文本的行
- java - “mailR”包的问题 - 在 RJavaClassLoader.findClass 处给出 java.lang.ClassNotFoundExceptio
- javascript - 如何在 Postman 中“以编程方式”设置集合变量的初始值?
- r - panelAR:相同的回归与更多的观察导致记忆错误
- javascript - 检查数组数组是否包含javascript中的值
- django - Django 中的模型字段
- android - 错误:找不到吸气剂:“小部件”。小部件.icon