提升和作用域:
Hoisting & Scoping\
Ben cherry的一篇
第一篇转帖的留言部分:
关于 Hoisting 那部分,有两点值得说明:
1. Hoisting 的作用范围是随着函数作用域的。我理解在这里尚未讲到函数作用域,不过可以提一句提醒读者注意,然后链接至作用域的部分进一步探讨;
2. “Hoisting 只对 `var` 声明的变量有效”,不尽然如此。变量声明的提升并非 hoisting 的全部,JavaScript 有四种让声明在作用域内获得提升的途径(按优先级):
-语言定义的声明,如 this 和 arguments。你不能在作用域内重新定义叫做 this 的变量,是因为 this 是语言自动定义的声明,并且它的优先级最高,也就是被 Hoisting 到最顶上了,没人能覆盖它
-形式参数。虽然我们无需用 var 来修饰形式参数,但是形式参数的确也是变量,并且被自动提升到次高的优先级
-函数声明。除了 var 以外,function declaration 也可以定义新的命名,并且同样会被 hoisting 至作用域顶部,仅次于前两者
-最后,是本文提到的常规变量,也就是 var 声明的变量
分享到:
相关推荐
javascript_hoisting_scoping
主要介绍了理解 JavaScript Scoping & Hoisting,尽管对于有经验的程序员来说这只是小菜一碟,不过我还是顺着初学者常见的思路做一番描述
希望这篇文章能够给JavaScript程序员最容易困惑的部分一些启示。我尽力写的全面,以免引起更多的困惑。如果我写错了或是漏掉了某些重要的东西,请一定让我知道
页面前端技术 javascript的function对象的hoisting特性详解
~~ [翻译]JavaScript Scoping and Hoisting 希望得到大家谅解。 一。案发现场 我们先看一段很简单的代码: 代码如下: var v=’Hello World’; alert(v); 这个没有疑问吧,弹出“Hello World”。OK,我们继续...
主要介绍了JavaScript中的Hoisting机制,涉及到JS中变量声明的相关问题,需要的朋友可以参考下
下面的程序是什么结果? 代码如下:var foo = 1;function bar() { if (!foo) { var foo = 10; } alert(...对于这种表现行为,我不知道有没有一个标准的称呼,但是我喜欢这个术语:“Hoisting (变
前言 刚接触到JavaScript的时候,便知道JavaScript是按顺序执行的,是如浏览器的解析DOM树一样的流程,解析DOM结构的时候,如果遇到JS脚本或者外联脚本便会停止解析,继续下载脚本之后,执行脚本,然后再解析DOM。...
hoisting 英[‘hɔɪstɪŋ] 美[‘hɔɪstɪŋ] n. 起重,提升 v. 把…吊起,升起( hoist的现在分词 ) 先来看一个栗子 var cc = 'hello'; function foo(){ console.log(cc); var cc = 'world'; console....
目前为止,我们一直没有对函数声明和函数表达式加以区别。... 以上代码完全可以正确执行,因为在代码开始执行之前,解析器就已经通过一个名为函数声明提升(function declaration hoisting)的过程
本文主要给大家介绍了关于JavaScript中Hoisting(变量提升与函数声明提升)的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 如何将 函数声明 / 变量 “移动” 到作用域的顶部。 术语 ...
钢丝绳在矿井碱性环境条件下的微动腐蚀磨损研究,曹守范,刘洪涛,钢丝绳因其优异的弯曲性和承载能力已经在很多领域得到了广泛地应用。在中国,采矿行业所用到的钢丝绳几乎占了钢丝绳总用量的一半
翻译:可视化的 JavaScript:提升点击访问:原文地址作者:Lydia Hallie提升(Hoisting)是每个 JavaScript 开发人员都听说过
这是矿山能源行业关于矿井提升机得英文版国家标准。