标签:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> var a = 100; function t() { alert(a); var a = 10; } t(); //输出结果为undefined // t()方法变量提升实质: // var a = 100; // function t() { // var a; // alert(a); // var a = 10; // } // t(); var status = "outher"; function showStatus() { var outStatus = status; var status = "inner"; var innerStatus = status; function status() {} alert(outStatus); //输出status方法体“function status() {}” alert(innerStatus); //输出inner } showStatus(); //变量提升实质: //js变量提升+方法提升。第44行status方法提升后,outStatus = status中的status指向了一个函数status, // 而不是变量,同理,若status提升在40行,则var status指向函数。输出结果一致。 // var status = "outher"; // function showStatus() {a // //status(); // var outStatus; // var status; // var innerStatus; // status(); // outStatus = status; // status = "inner"; // innerStatus = status; // function status() {} // alert(outStatus); // alert(innerStatus); // } // showStatus(); </script> </head> <body> </body> </html>
标签:
原文地址:http://www.cnblogs.com/Teofil/p/4665951.html