如下代码,第一次弹出a,因为解析器里找到var a,赋予a变量undefined,弹出undefined
1 <!DOCTYPE html> 2 <html> 3 ????<head> 4 ????????<meta charset="UTF-8"> 5 ????????<title>js作用域</title> 6 ????????<script type="text/javascript"> 7 ????????????alert(a); //第一次弹出a为undefined 8 ????????????var a = 3; 9 ????????????alert(a);//弹出310 ????????</script>11 ????</head>12 ????<body>13 ????</body>14 </html>
现在给拆分到2个script块里
1 <!DOCTYPE html> 2 <html> 3 ????<head> 4 ????????<meta charset="UTF-8"> 5 ????????<title>js作用域</title> 6 ????????<script type="text/javascript"> 7 ????????????alert(a); //出错,解析器找不到a变量 8 ????????</script> 9 ????????10 ????????<script type="text/javascript">11 ????????????var a = 3;12 ????????????alert(a);//弹出313 ????????</script>14 ????</head>15 ????<body>16 ????</body>17 </html>
不同的script块,虽然同是全局变量,但是上面的先解析,解析执行完成了再执行下面的,而上面的script中没有对变量a进行定义,所以代码出错,浏览器提示报错。
js作用域零碎的知识点,不同的script块,虽然同是全局变量
原文地址:https://www.cnblogs.com/html55/p/9744085.html