尚硅谷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>