ReferenceError: Cannot access ‘xxx‘ before initialization

简介: ReferenceError: Cannot access ‘xxx‘ before initialization

执行下面代码

let myname= 'kaimo666'
{
  console.log(myname) 
  let myname= 'kaimo777'
}




最终打印结果

20210321163819170.png


分析原因


在块作用域内,let声明的变量被提升,但变量只是创建被提升,初始化并没有被提升,在初始化之前使用变量,就会形成一个暂时性死区。


另外一个例子:

function test(){
  console.log(a)
  let a = 7;
}
test()


20210321165117857.png



执行test的时候,编译阶段a已经在内存中,为什么提前访问不了?

这主要是因为V8虚拟机做了限制,虽然a在内存中,但是当你在let a 之前访问a时,根据ECMAScript定义,虚拟机会阻止的访问!



拓展


   var的创建和初始化被提升,赋值不会被提升。

   let的创建被提升,初始化和赋值不会被提升。

   function的创建、初始化和赋值均会被提升。



目录
相关文章
|
JavaScript 前端开发 API
深入浅出:Vue 3 Composition API 的魅力与实践
【2月更文挑战第13天】 本文将探索 Vue 3 的核心特性之一——Composition API。通过对比 Options API,本文旨在揭示 Composition API 如何提高代码的组织性和可复用性,并通过实际案例展示其在现代前端开发中的应用。不同于传统的技术文章摘要,我们将通过一个具体的开发场景,引领读者步入 Composition API 的世界,展现它如何优雅地解决复杂组件逻辑的管理问题,从而激发读者探索和运用 Vue 3 新特性的热情。
226 1
|
移动开发 JavaScript 前端开发
分享111个JavaScript源码,总有一款适合您
分享111个JavaScript源码,总有一款适合您
346 1
|
前端开发 JavaScript Java
Springboot 使用thymeleaf 服务器无法加载resources中的静态资源异常处理
Springboot 使用thymeleaf 服务器无法加载resources中的静态资源异常处理
879 0
|
小程序 容器
【微信小程序】-- WXML 模板语法 - 条件渲染 -- wx:if & hidden (十一)
【微信小程序】-- WXML 模板语法 - 条件渲染 -- wx:if & hidden (十一)
|
移动开发 资源调度 JavaScript
Vue移动端网页(H5)预览pdf文件(pdfh5和vue-pdf)
这篇文章介绍了在Vue移动端网页中使用`pdfh5`和`vue-pdf`两个插件来实现PDF文件的预览,包括滚动查看、缩放、添加水印、分页加载、跳转指定页数等功能。
8421 1
Vue移动端网页(H5)预览pdf文件(pdfh5和vue-pdf)
|
5月前
|
定位技术 Python
遭遇Debian无法执行脚本提示"文件或目录不存在"问题解决方案
这样的错误提示在使用Debian的过程中是很常见的,希望这个极具形象意义的解释和解决方法能帮到你,并使你在处理这样的问题的时候充满乐趣。如果你遇到其他的问题或者对这个问题有更深一步的疑问,欢迎随时提问,我会在第一时间为你解答。
229 24
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
409 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
JSON JavaScript 定位技术
Echarts 绘制地图(中国、省市、区县),保姆级教程!
Echarts 绘制地图(中国、省市、区县),保姆级教程!
|
11月前
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
229 0
在线课堂+工具组件小程序uniapp移动端源码
|
JavaScript
vue3 【提效】自动注册组件 unplugin-vue-components 实用教程
vue3 【提效】自动注册组件 unplugin-vue-components 实用教程
897 1