尚硅谷js---58、变量和函数的声明提前

尚硅谷js---58、变量和函数的声明提前

一、总结

一句话总结:

变量的声明提前:使用var关键字声明的变量,会在所有的代码执行之前被声明(但是不会赋值),但是如果声明变量时不使用var关键字,则变量不会被声明提前
函数的声明提前:使用函数声明形式创建的函数 function 函数(){},它会在所有的代码执行之前就被创建,使用函数表达式创建的函数,不会被声明提前,所以不能在声明前调用

1、变量的声明提前 是怎么回事?

变量的声明提前:使用var关键字声明的变量,会在所有的代码执行之前被声明(但是不会赋值),但是如果声明变量时不使用var关键字,则变量不会被声明提前

2、函数的声明提前 是怎么回事?

函数的声明提前:使用函数声明形式创建的函数 function 函数(){},它会在所有的代码执行之前就被创建,使用函数表达式创建的函数,不会被声明提前,所以不能在声明前调用

3、为什么 使用函数表达式创建的函数,不会被声明提前?

因为使用var声明的变量会先声明,但是不会被先赋值,执行到赋值代码的时候才会赋值,所以使用函数表达式创建的函数不会被提升声明

二、变量和函数的声明提前

博客对应课程的视频位置:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <script type="text/javascript">
 7             
 8             
 9             /*
10              * 变量的声明提前
11              *     - 使用var关键字声明的变量,会在所有的代码执行之前被声明(但是不会赋值),
12              *         但是如果声明变量时不使用var关键字,则变量不会被声明提前
13              * 
14              * 函数的声明提前
15              *     - 使用函数声明形式创建的函数 function 函数(){}
16              *         它会在所有的代码执行之前就被创建,所以我们可以在函数声明前来调用函数
17              *        使用函数表达式创建的函数,不会被声明提前,所以不能在声明前调用    
18              */
19             /*console.log("a = "+a);
20             
21             var a = 123;*/
22             
23             //fun();
24             
25             
26             //函数声明,会被提前创建
27             function fun(){
28                 console.log("我是一个fun函数");
29             }
30             
31             //函数表达式,不会被提前创建
32             var fun2 = function(){
33                 console.log("我是fun2函数");
34             };
35             
36             fun2();
37             
38             
39             
40         </script>
41     </head>
42     <body>
43     </body>
44 </html>
 
原文地址:https://www.cnblogs.com/Renyi-Fan/p/12417040.html