javascript - 对于本地和全局范围,提升“让”变量是否不同?
问题描述
我正在尝试下面的代码片段 -
1)
console.log(a);
let a = 5;
我得到 - 未捕获的 ReferenceError: a is not defined at :1:13
2)
a = 10;
let a = 5;
我得到 - 未捕获的 ReferenceError:在初始化之前无法访问“a”:1:3
如果我在函数中尝试相同的片段 -
3)
function someName() {
console.log(a);
let a = 5;
}
someName()
我得到 - Uncaught ReferenceError: Cannot access 'a' before in someName (:2:17) at :1:1
4)
function someName() {
a = 10;
let a = 5;
}
someName()
我得到 - Uncaught ReferenceError: Cannot access 'a' before in someName (:2:11) at :5:5
为什么 1) 和 2) 但 3) 和 4) 的错误消息不同。对于全局和本地范围,“让”提升是否不同?
解决方案
推荐阅读
- processing - 如何在 mousepress() 上创建重力函数?
- php - 在laravel中首先按关系排序
- javascript - 递归循环检查条件是否良好,或重试
- node.js - NODE N-API 使用插件中的函数时会阻塞主进程节点 js?
- java - 未调用 JDBC Aspect 切入点
- java - 如何在where子句中使用枚举作为jpa中的常量检查
- laravel - Laravel - 错误“传递给 Illuminate\Validation\Factory::make() 的参数 2 必须是数组类型,给定对象”
- twig - Opencart 3 扩展 Twig(从控制器访问 Twig 环境)
- c - scanf 函数是否会导致运算符出现任何逻辑问题?
- sql - 查找每年物业/单元的每个月的空置(无合同)天数