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; 提升到函数顶部。 赋值在原位置不动。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 密码学专题 SSL协议

    密码学专题 SSL协议SSL协议为不同的高层协议(http、FTP)提供安全服务 SSL握手协议、SSL修改密文协议和SSL告警协议的目的是为了管理和SSL相关的密文交换 连接:两台主机之间提供特定类型的数据传输,是点对点的关系;连接是短暂的,每一个连接都会和一个会话相互关联 会话:是指客户和服务器之间的关联,会话是通过握手协议创建的;会话是加密安全参数的一个集合,包含加密算法、临时的加密密钥等信息;会话可以为多个连接所共享,就可以避免为每个连接建立都要进行安全参数的协商带来的昂贵的时间代价。如果服务器和客户端之..

  • netCMS学习笔记

    netCMS学习笔记二者关系:“netCMS”出自“风讯”,“netCMS”完全开源,有相关文档资料。“风讯”开源版删除了一些源码。学习内容:一、模板实现原理   标签   netCMS自定义了一系列标签,在模版页面中插入这些标签,在发布网页时类“NetCMS.Publish.Template”用正则表达示筛选出这些标签,然后从数据库表“NT_News”中读取相应的内容,将标签替换。   模版   模版引用的CSS,图片等路径,必需是绝对路径。   前台浏览方式   分“动态”和“静态”两种模式。   在“动态”

  • 【STM32】HAL库 STM32CubeMX教程十—DAC「建议收藏」

    【STM32】HAL库 STM32CubeMX教程十—DAC「建议收藏」前言:本系列教程将对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用所用工具:1、芯片:STM32F407ZET6/STM32F103ZET62、STM32CubeMx软件3、IDE:MDK-Keil软件4、STM32F1xx/STM32F4xxHAL库知识概括:通过本篇博客您将学到:DAC工作原理STM32CubeMX创建…

  • 解决VS2008在win7找不到输入序列号的地方

    解决VS2008在win7找不到输入序列号的地方VS2008在Windows7打开维护界面看不到可以输序列号的地方。因为微软把他隐藏了。我们可以借用工具把他显示出来:下载地址:http://www.zlsoft.com/techbbs/UploadFile/2010-7/2010716148883786.rar使用方法:打开工具,填入你的找到序列号,点击开启,打开控制面板,调出VS2008的维护界面,点击下一步

  • linux复制文件scp命令,Linux scp命令详解(服务器之间复制文件或目录)

    linux复制文件scp命令,Linux scp命令详解(服务器之间复制文件或目录)scp:服务器之间复制文件或目录一、命令格式:scp[-1246BCpqrv][-ccipher][-Fssh_config][-iidentity_file][-llimit][-ossh_option][-Pport][-Sprogram][[user@]host1:]file1[…][[user@]host2:]file2简易写法:scp[可选参数]…

  • NicEdit和Kindeditor配置

    NicEdit和Kindeditor配置推荐两款富文本编辑器:NicEdit和Kindeditor做过Web开发的朋友相信都使用过富文本编辑器,比较出名的CuteEditor和CKEditor很多人应该已经使用过,在功能强大的同时需要加载的东西也变得很多。下面要推荐的两款富文本编辑器都是使用JS编写,使用简单,非常轻量级。NicEditorNicEdit是一个轻量级,跨平台的InlineContentEditor…

    2022年10月12日

发表回复

您的电子邮箱地址不会被公开。

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