Class 不存在变量提升

类不存在变量提升(hoist),这一点与 ES5 完全不同。

  1. new Foo(); // ReferenceError
  2. class Foo {}

上面代码中,ES6 Foo类使用在前,定义在后,这样会报错,因为 ES6 不会把类的声明提升到代码头部。这种规定的原因与下文要提到的继承有关,必须保证子类在父类之后定义。

  1. {
  2. let Foo = class {};
  3. class Bar extends Foo {
  4. }
  5. }

上面的代码不会报错,因为Bar继承Foo的时候,Foo已经有定义了。但是,如果存在class的提升,上面代码就会报错,因为class会被提升到代码头部,而let命令是不提升的,所以导致Bar继承Foo的时候,Foo还没有定义。

es6 Class 不存在变量提升相关推荐

  1. 【ES6】let、const变量提升的验证,以及TDZ死区的理解

    前段时间在网上自学ES6,了解到ES6新增的let和const是存在变量提升的,但是由于TDZ(暂时性死区)的存在,在定义前访问会出现错误. 今天在腾讯课堂听老师讲ES6,多次强调let和const没 ...

  2. TypeScript(ES6)变量提升(Hoisting)

    ES6 新特性 ES2015(ES6) 新增加了两个重要的 JavaScript 关键字: let 和 const. let 声明的变量只在 let 所在的代码块内有效. const 声明一个只读的常 ...

  3. 深入理解js的变量提升和函数提升

    一.变量提升 在ES6之前,JavaScript没有块级作用域(一对花括号{}即为一个块级作用域),只有全局作用域和函数作用域.变量提升即将变量声明提升到它所在作用域的最开始的部分.上个简历的例子如: ...

  4. js变量提升_一道JS变量提升题

    var a = 0;if(true){a = 1;function a(){};a = 21;console.log(a);}console.log(a);// 21 1 当前上下文代码执行之前,会将 ...

  5. js变量提升_学习笔记:JS中的作用域和预解析

    知识总结:谢静贤.汤昊 在javascript中作用域是非常重要的,本文将会说明作用域以及我们在工作,以及面试中的一些面试题,如果有不足的地方希望大家可以评论指出来,自己一定会及时的改正错误,避免大家 ...

  6. 详解var、let、const关键词声明变量的区别,以及变量提升、块级作用域的认识等。

    首先回顾一下JavaScript中var声明变量的基础知识: • 在使用var关键词声明变量时,变量在函数外则是全局变量,有全局作用域,全局变量在页面关闭后销毁:变量在函数内则是局部变量,作用局部作用 ...

  7. JavaScript变量提升

    JavaScript变量提升 在JavaScript中变量声明与函数声明都会被提升到作用域顶部,优先级依次为: 函数声明 变量声明 变量赋值. 变量提升 var的变量提升 console.log(a) ...

  8. 为什么let在php中报错,ES6系列之声明变量let与const

    本篇文章主要是向大家分享了关于ES6系列的声明变量let与const,有兴趣的朋友们可以参考一下本文中的内容 简介 概念 ES6 的第一个版本,在 2015 年 6 月发布了,正式名称就是<EC ...

  9. 作用域、变量提升、函数提升、数据类型

    一.作用域分类 (作用域范围内定义的变量,整个作用域都可以访问) 1. 全局作用域 使用var声明(或者不严格模式下没有声明)且在函数外定义的变量,其作用域范围是全局的,称其为全局作用域. 2. 函数 ...

最新文章

  1. cmake qmake
  2. 想为企业杜绝钓鱼邮件,ValiMail 获1200万美元A轮融资
  3. Android 百度地图 SDK v3.0.0 (二) 定位与结合方向传感器
  4. fast-rcnn练习资料整理
  5. 高级C语言教程-编译链接调试
  6. 新手学Python推荐的四本书籍+2个资源网站
  7. 为 CefSharp 应用内置 C++ 运行环境并启用 AnyCPU 支持
  8. 产品 电信nb接口调用_通用电信华为物联网IOT开放平台NB-IOT对接profile透传编解码插件离线定制开发...
  9. 内存泄露之常见问题解决「初级篇」
  10. java中的Date类,DataFormat类及Calendar类的使用详解
  11. java设计模式--01类图UML图箭头含义
  12. CAD梦想画图中的“打断命令”
  13. 3、线性表的顺序存储结构(顺序表)
  14. android wifi驱动加载失败怎么办,wifi驱动无法被安卓系统正常调用
  15. UE4灰度图生成地图记录blender生成城市地形
  16. 学习笔记javaSE---集合
  17. ChatGPT AI生成的VUE教程博客大纲
  18. 字节跳动前端面经凉经(半年经验社招)待填坑
  19. 基于ARM RK3568的红外热成像体温检测系统
  20. Web渗透测试基本流程

热门文章

  1. 《追风筝的人》卡勒德·胡赛尼著小说成长的故事
  2. Ruby对象、变量和常量
  3. 泰囧成功背后社会化营销功不可没
  4. 初识Xen-CentOS5.8_x64位系统安装xen文档(-)
  5. 【Java线程】“打工人”初识线程池及自定义线程池实战
  6. Could not load driverClass ${jdbc.driver}
  7. Csharp:user WebControl Read Adobe PDF Files In Your Web Browser
  8. Java_Date_01_判断两个时间相差的天数
  9. java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListene解决办法
  10. Application package 'AndroidManifest.xml' must have a minimum of 2 segments.