美文网首页
es6 const let class 定义变量提升。

es6 const let class 定义变量提升。

作者: strong9527 | 来源:发表于2017-07-28 14:43 被阅读70次

在掘金的分享文章当中看到了关于es6 const 和 let变量声明是否提升的文章,学到了很多。


原文链接
stackoverflow相关问题连接


const、 let、class 和、var、function定义一样都存在变量提升。只不过是初始化的不同表现才使得前面一组定义和后一组不太一样

在变量提升后,var 会给变量初始值undefined。而let等定义方式是未初始化,也就是什么值都没有。这就意味着当你尝试去读取值的时候会报错。所以会有一个暂时性死区的感念。这个区间就是在未进行初始化前,进行值得访问。


x = y = "global";
(function() {
    x; // undefined
    y; // Reference error: y is not defined

    var x = "local";
    let y = "local";
}());

简单结论

  1. let 的「创建」过程被提升了,但是初始化没有提升。
  2. .var 的「创建」和「初始化」都被提升了。
  3. function 的「创建」「初始化」和「赋值」都被提升了。

相关文章

  • ECMAScript6--let、const

    在es6之前用var定义变量。es6中新增了let、const 变量声明提升 所谓变量声明提升指的是,用var定义...

  • ES6的变量定义深入解析

    在es6中变量的定义方式有:var 、function 、let 、const 、import、 class。 l...

  • (JS)

    ES6 let、const和var的区别 let和const声明变量不存在变量提升 let和const不能重复声明...

  • let const var 的区别

    1、let 和 const 定义的变量不会出现变量提升,而 var 定义的变量会提升2、let 和 const 会...

  • es6的六种声明变量的方式

    ES6 声明变量的方法:var let const import class function

  • ES6 新特性

    1.const和let ES6中新增的const和let关键字,在定义常量和变量时不会存在变量提升的情况,而且通过...

  • es6总结一

    es6基础 let和const命令 let和const用于声明变量let跟var的区别 1、let定义过的变量不能...

  • es6新增--变量定义与变量类型

    es6新增常用功能 1.新增let,const,import变量的定义,其实class也算是一种变量的定义2.新增...

  • es6,es7,es8语法总结

    ES6 1. var let const let,const具有块级作用域,不具有变量提升 const 用...

  • ES 6 7 8 随笔 QAQ

    ES6 1. var let const let,const具有块级作用域,不具有变量提升 const 用...

网友评论

      本文标题:es6 const let class 定义变量提升。

      本文链接:https://www.haomeiwen.com/subject/rgaxlxtx.html