let暂时性死区理解「建议收藏」

let暂时性死区理解「建议收藏」Let中提到的暂时性死区到底是什么,它的产生原因是? ES6规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。总之,在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”,也就是说使用let声明的变量都是先声明再使用,不存在变量提升问题。letmyname=’sxx’;{console.log(myname);l…

大家好,又见面了,我是你们的朋友全栈君。

  1. Let 中提到的暂时性死区到底是什么,它的产生原因是?

      ES6 规定,如果区块中存在 let 和 const 命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。总之,在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”,也就是说使用let声明的变量都是先声明再使用 ,不存在变量提升问题。

let myname= ‘sxx’;

{

    console.log(myname);

   let myname= ‘sdx ‘;

}//报错

报错原因:在块作用域内,let声明的变量被提升,但变量只是创建被提升,初始化并没有被提升(初始化就是给变量先赋值成undefined),在初始化之前使用变量,就会形成一个暂时性死区。

【注】

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

·let的创建被提升,初始化和赋值不会被提升。let 和 const 作用基本一致,但是const 声明的变量不能再次赋值

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

2.为什么let,const有暂时性死区,而var没有?

因为var有预处理机制,也就是变量提升; 声明提前指的是,不管变量被声明在函数什么位置,这些声名都会被提升至函数顶部。 比如 var a = 1; 会把var a; 提升到函数顶部。 赋值在原位置不动。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149153.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm更改整体背景颜色(黑-白)[通俗易懂]

    pycharm更改整体背景颜色(黑-白)[通俗易懂]pycharm更改整体背景颜色(黑-白)打开pycharm:1、左上角File—-Settings2、Appearance&Behavior—-Appearance—-第一栏:Theme选择想要的背景色(白色IntelliJLight黑色Darcula黑亮Highcontrast)—-右下角OK…

    2022年8月25日
    13
  • 【超详细】手把手教你ElasticSearch集群搭建

    【超详细】手把手教你ElasticSearch集群搭建1.ElasticSearch快速入门1.1.基本介绍ElasticSearch特色Elasticsearch是实时的分布式搜索分析引擎,内部使用Lucene做索引与搜索实时性:新增到ES中的数据在1秒后就可以被检索到,这种新增数据对搜索的可见性称为“准实时搜索”分布式:意味着可以动态调整集群规模,弹性扩容集群规模:可以扩展到上百台服务器,处理PB级结构化或非结构化数据各节点组成对等的网络结构,某些节点出现故障时会自动分配其他节点代替其进行工作Lucene是Ja

    2022年10月13日
    0
  • wget找不到命令

    wget找不到命令由于系统中未安装导致,运行yum-yinstallwget 即可;

    2022年5月20日
    43
  • 深度学习中学习率和batchsize对模型准确率的影响

    本内容来自其他的人解析,参考链接在最后的注释。1.前言目前深度学习模型多采用批量随机梯度下降算法进行优化,随机梯度下降算法的原理如下:n是批量大小(batchsize),η是学习率(learningrate)。可知道除了梯度本身,这两个因子直接决定了模型的权重更新,从优化本身来看它们是影响模型性能收敛最重要的参数。学习率直接影响模型的收敛状态,batchsize则影响模型的泛化性能,两者又是分子分母的直接关系,相互也可影响,因此这一次来详述它们对模型性能的影响。2.学习率如何影响模型性.

    2022年4月17日
    81
  • Python语音信号处理

    Python语音信号处理个人博客:http://www.chenjianqu.com/原文链接:http://www.chenjianqu.com/show-44.html语言信息是多种信息的混合载体,其中包括内容信息、说话人信息和情感信息。本文介绍了一些语音的基本知识,和使用Python进行处理。时域特征使用wave模块读取wav音频文件,画图时域图像,代码如下。import…

    2022年5月25日
    36
  • pycharm中安装第三方库出现错误_pycharm常用第三方库

    pycharm中安装第三方库出现错误_pycharm常用第三方库我在命令行窗口用pipinstall库名的时候,ModuleNotFoundError:Nomodulenamed‘pip._internal.cli.main’这是在pycharm里报的错Traceback(mostrecentcalllast):File“f:\python\lib\runpy.py”,line193,in_run_module_as_main“main”,mod_spec)File“f:\python\lib\ru

    2022年8月26日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号