声明提升

                                            <table class="text"&gt;<tbody><tr class="li1"&gt;

<td class="ln"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

代码执行前处理,这意味着在任意地方声明变量都等同于在顶部声明——即声明提升。1.2特意强调了函数定义,因为声明提升中,需要综合考虑一般变量和函数。   在JavaScript中,一个变量名进入作用域的方式有 4 种:   Language-defined:所有的作用域认都会给出 this 和 arguments 两个变量名(global没有arguments); Formal parameters(形参):函数有形参,形参会添加函数的作用域中; Function declarations(函数声明):如 function foo() {}; Variable declarations(变量声明):如 var foo,包括函数表达式。 函数声明和变量声明总是会被移动(即hoist)到它们所在的作用域的顶部(这对你是透明的)。   而变量的解析顺序(优先级),与变量进入作用域的4种方式的顺序一致。   一个详细的例子:   function testOrder(arg) {     console.log(arg); // arg是形参,不会被重新定义     console.log(a); // 因为函数声明比变量声明优先级高,所以这里a是函数     var arg = 'hello'; // var arg;变量声明被忽略, arg = 'hello'被执行     var a = 10; // var a;被忽视; a = 10被执行,a变成number     function a() {         console.log('fun');     } // 被提升到作用域顶部     console.log(a); // 输出10     console.log(arg); // 输出hello }; testOrder('hi'); /* 输出: hi function a() {         console.log('fun');     } 10 hello */

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...