javascript

Hoisting is a JavaScript mechanism where variables and function declarations are moved to the top of their scope before code execution.

提升是一种JavaScript机制,在执行代码之前,变量和函数声明会移至其作用域的顶部。

Hoisting is JavaScript’s default behavior of moving declarations to the top.

提升是JavaScript将声明移到顶部的默认行为。

悬挂了JavaScript声明 (JavaScript Declarations are Hoisted)

In JavaScript, a variable can be declared after it has been used. In other words; a variable can be used before it has been declared.

在JavaScript中,变量可以在使用后声明。 换一种说法; 变量可以在声明之前使用。

result => 5
结果=> 5

To understand this, you have to understand the term “hoisting”.

要了解这一点,您必须了解术语“吊装”。

Hoisting is JavaScript’s default behavior of moving all declarations to the top of the current scope (to the top of the current script or the current function).

提升是JavaScript的默认行为,即将所有声明移到当前作用域的顶部(当前脚本或当前函数的顶部)。

let和const关键字 (The let and const Keywords)

In JavaScript, a ReferenceError is thrown when trying to access a previously undeclared variable.

在JavaScript中,尝试访问以前未声明的变量时将抛出ReferenceError。

Variables defined with let and const are hoisted to the top of the block, but not initialized.

letconst定义的变量被提升到块的顶部,但是没有初始化

Meaning: The block of code is aware of the variable, but it cannot be used until it has been declared.

含义:代码块知道该变量,但是在声明它之前不能使用它。

Using a let or const variable before it is declared will result in a ReferenceError.

在声明之前使用letconst变量将导致ReferenceError

The variable is in a “temporal dead zone” from the start of the block until it is declared:

从块开始到声明为止,该变量位于“临时死区”中:

不初始化JavaScript初始化 (JavaScript Initializations are Not Hoisted)

JavaScript only hoists declarations, not initializations.

JavaScript仅提升声明,而不提升初始化。

Example 1 does not give the same result as Example 2:

实施例1没有给出相同的结果与实施例2:

Result => 5 7
结果=> 5 7

变种 (var)

The scope of a variable declared with the keyword var is its current execution context. This is either the enclosing function or for variables declared outside any function, global.

用关键字var声明的变量的范围是其当前的执行上下文。 这是封闭函数,也可以是在任何函数之外声明的变量global

Result => x is 5 and y is undefined
结果=> x为5并且y未定义

This is what really happened here.

这就是这里真正发生的事情。

Does it make sense that y is undefined in the last example?

在上一个示例中y未定义是否有意义?

This is because only the declaration (var y), not the initialization (=7) is hoisted to the top.

这是因为只有声明(var y)而不是初始化(= 7)放在顶部。

Because of hoisting, y has been declared before it is used, but because initialization are not hoisted, the value of y is undefined.

由于提升,已在使用y之前声明了y,但由于未提升初始化,因此y的值未定义。

Example 2 is the same as writing:

示例2与写作相同:

Result => 5 undefined
结果=> 5个未定义

在顶部声明变量!(Declare Your Variables At the Top!)

Hoisting is (to many developers) an unknown or overlooked behavior of JavaScript.

对于许多开发人员而言,吊装是JavaScript的未知或被忽略的行为。

If a developer doesn’t understand hoisting, programs may contain bugs (errors).

如果开发人员不理解吊装,程序可能包含错误(错误)。

To avoid bugs, always declare all variables at the beginning of every scope.

为避免错误,请始终在每个作用域的开头声明所有变量。

Since this is how JavaScript interprets the code, it is always a good rule.

由于这是JavaScript解释代码的方式,因此始终是一个好规则。

翻译自: https://medium.com/swlh/javascript-hoisting-e72497ec8157

javascript


http://www.taodudu.cc/news/show-2916763.html

相关文章:

  • vue2升级到 Vue3的异同(入门须知)
  • vue3 如何使用 vue3-tinymce
  • Taro使用Vue3踏坑日记:Module not found: Can‘t resolve ‘@vue/server-renderer‘ in ‘/Users/...‘
  • JavaScript系列文章:变量提升和函数提升
  • Hexo博客安装卡在“INFO install dependencies”解决方法
  • vue3 如何给动态渲染的组件添加ref
  • js函数表达式与函数声明_何时使用函数声明与函数表达式
  • vue3编译器原理
  • 【Vuejs】1426- 深入解析 Vue 3 基础难点
  • vue3 效率的提升、composition-api 和 ref 详解
  • Vue 源码解读 起步(二)
  • vue3 源码分析-运行流程分析
  • Vue3.0的插槽是如何实现的?
  • ​Vue 3 这个坑我踩了,你们一定要小心
  • Var,Let和Const –有什么区别?
  • Vue常用的内置指令的底层细节分析
  • 在 Vue3 成为默认版本后,盘点了 Vue3 与 Vue2 的区别
  • Vue3基础难点总结
  • 深入了解 Vue3 模板编译原理
  • 为什么Vue(默认情况下)比React性能更好
  • JS中的函数声明和函数表达式
  • 三大门派var,const,let之间的纠纷
  • 锂矿降龙十八掌之时乘六龙
  • 锂矿降龙十八掌之时乘六龙:盛新锂能
  • 区块链概念正宗龙头股
  • 龙ol服务器维护补偿boss,总裁酷炫狂霸拽 《龙OL》练武场深处的BOSS
  • 个人日记-《疯狂的原始人2》动漫电影观后感-20201130
  • 郝萌主之疯狂的蝌蚪
  • Activity讲解(疯狂android)
  • ffmpeg开源工具的使用_使用开源工具玩龙与地下城

javascript_javascript吊装相关推荐

  1. 2016-2022年AutoCAD起重机吊装计划和索具图纸

    AutoCAD Crane Lifting Plan and Rigging Drawings 2016-2022 完成AutoCAD 2D高级起重机提升计划和索具图纸-基于项目的培训 你会学到什么 ...

  2. 335b装配程序流程图_某建设项目装配式框架结构PC构件吊装监理细则(方案)

    由于篇幅有限,以下为某建设项目装配式框架结构PC构件吊装工程监理细则(方案)资料范本部分选段及图片,仅供各位同行参考使用.如需完整电子版请留意文后领取方式. xxxx项目装配式框架结构PC构件吊装工程 ...

  3. java和c++的区别大吗_大空间消防水炮ZDMS0.8/30S坐装和吊装有区别吗?

    大空间消防水炮现在是高大建筑的消防必备的设备之一,其型号按照流量可分为4种,ZDMS0.6/5S,ZDMS0.6/10S,SZDMS0.8/20S,ZDMS0.8/30S.在这中间使用较多的是5L和3 ...

  4. oracle 取记录最大的那条记录_新记录!国内跨高速铁路最大、吊装高度最高的钢横梁顺利吊装到位...

    河南日报客户端记者 王铮 通讯员 赵亚龙 6月3日4时,经过4次封锁要点施工,由中铁七局承建的郑(州)济(南)铁路上跨徐兰高速铁路2处钢横梁架设顺利完成,创造了国内跨高速铁路吊装重量最大.吊装高度最高 ...

  5. 一级造价工程师(安装)- 计量笔记 - 第二章第三节吊装工程

    1.下列选项中,不属于常用吊具的是(滑轮). 常用的索吊具包括:绳索(麻绳.尼龙带.钢丝绳).吊具(吊钩.吊环.吊梁).滑轮等. 2.(钢丝绳)在起重机械和吊装工作中得到广泛的采用,如用于曳引.张拉. ...

  6. 瓦里安为山东质子中心吊装回旋加速器

    瓦里安医疗宣布为山东省肿瘤医院质子临床研究中心成功吊装ProBeam®质子治疗系统的核心部件 -- 超导回旋加速器,达成质子中心建设历程上的一个重要里程碑. ProBeam质子治疗系统回旋加速器吊装 ...

  7. 为什么设计理化生实验室智能吊装系统?

    在"课程改革"的大背景下,以理化生等学科为载体的传统学科教室已无法充分完成功能升级与向教学环境的多元化转型,传统学科教室空间利用率的源头就被功能模块(供水.供电.通风等)的设计施工 ...

  8. [办公自动化]如何选择投影仪的吊装距离

    同事的办公室要安装一台投影仪,EPSON EB-C2040XN, 说是无论如何调节,投影框都超出了幕布.问如何调节. 我说,你是不是装远了. 他说,可能是,希望你能帮助一下,看如何调节. 我说,只能重 ...

  9. 世界最大主跨径飞燕式系杆拱桥成功吊装首节主拱

    世界最大主跨径飞燕式系杆拱桥成功吊装首节主拱. 钟欣 摄 世界最大主跨径飞燕式系杆拱桥成功吊装首节主拱. 钟欣 摄 中新网成都1月26日电 (记者 张浪)记者26日从中交第二公路工程局有限公司获悉,位 ...

最新文章

  1. Swift中的问号?和感叹号!
  2. (深入理解)强化学习中on policy和off policy的区别
  3. AMD/NV大跌2周后仅两天收复失地 挖矿成背后推手
  4. centos6 64位服务器的基本初始化
  5. 汇编语言随笔(15)- 对键盘输入进行处理(int 9 和 int 16h 中断例程)
  6. 前端学习(2696):重读vue电商网站17之监听图片上传成功事件
  7. mysql分页查询报错,及解决
  8. python获取钉钉日志数据_python3实现zabbix告警推送钉钉的示例
  9. linux6同步时间,centos 6.x 同步网络时间
  10. docker环境,搭建kafka集群
  11. 你很熟悉CSS,却没掌握这些CSS技巧
  12. matlab用平方法怎么求传递闭包矩阵,逐次平方法计算传递闭包
  13. 利用excel制作二维码
  14. 求教吉他继续提高的方法
  15. IDEA中一直indexing问题
  16. invalid vcs root mapping 怎么解决_一加黑鲨华硕OPPO等手机root后微信指纹支付不可用怎么解决...
  17. vsCode html文件格式化
  18. 【TUG 话题探讨003】TUG 专家们如何做 TiDB 性能调优
  19. 微信公众号实现淘宝查券机器人
  20. 同步群晖内的两个本地文件夹

热门文章

  1. jar文件读取和遍历
  2. MySqlDataAdapter桥接器的使用
  3. 微机中的实际地址、物理地址、有效地址、逻辑地址之间的区别
  4. IOS安卓友盟消息推送详细配置以及证书更新
  5. faster R-CNN中anchors 的生成过程(generate_anchors源码解析)
  6. 【区块链108将】区块链无权威,参与之前多了解才可能赚钱
  7. 转行智能控制的这些年(月无声智控事业部的前世今生)
  8. android studio 打包cocos creator项目
  9. 解决Ubuntu16.04耳机没声音问题
  10. /dev/null 21 详解