变量声明提升
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> </body> </html> <script> var v = "hello"; function test (){ console.log(v); var v = "world"; } // 这段代码运行的结果是什么呢? // 答案是:undefined // 这段代码说明了两个问题, // 第一,function作用域里的变量v遮盖了上层作用域变量v。 // 第二,在function作用域内,变量v的声明被提升了。所以最初的代码相当于: // // var v = "hello"; // function test (){ // var v; //声明一个变量 声明提升,但是不会被赋值 // console.log(v); // v = "world"; // } </script>