View Code
1 <html xmlns="http://www.w3.org/1999/xhtml"> 2 <head > 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 4 <title>JS之天下没有蠢问题</title> 5 <script type="text/javascript"> 6 (function () { 7 alert(1); 8 var b = 1; 9 })(); 10 //alert(b);//b未定义,浏览器报错。 11 var a = function () { 12 var aa = "aa"; 13 alert(aa); 14 } 15 //alert(aa); //aa未定义,浏览器报错。 16 a(); 17 </script> 18 </head> 19 <body> 20 </body> 21 </html>
贴上这段代码主要是介绍js的加载过程中js语句是否执行的问题。
说下我的理解,如有错误请指正。
当这个页面加载的过程中,程序已经执行了<script>标签内的代码,页面会弹出alert(1);同时给局部变量b赋值,但执行完成后b就会自动回收。alert(b);会提示b未定义。然后初始化一个对象a;但a对象内的aa并不创建,alert(2);也不会执行。对象外部的alert(aa);提示aa未定义;a();执行a函数,alert(2);执行同时创建aa=1。