<script type="text/javascript"> /** * 做用域:在嵌套的函数中变量的寻址是由里向外的,当寻址到变量的值就不会继续在往外找。找到window对象时无此属性会报undefined错误 */ function out(){ var d=5; function into(){ var e=5; var d=2 alert(d+e); } into(); } out(); // 输出为7 </script>
+----------------------------------------------------------------------------------------------------------------------------- <script type="text/javascript"> /** * var 关键字:只是变量的定义而已,并不表明做用域,未加关键字var的变量只至关于赋值操做. */ alert(window.e); // undefined alert(window.d); // undefined function t(){ e=5; var d=6 } t(); alert(window.e); // 5 alert(window.d); // undefined </script>+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<script type="text/javascript"> /** * 代码的运行方式是自上而下从左至右,从函数里到外 */ var str1='global'; function t(){ alert(str1); alert(str2); str2='aa'; } t(); output: global; undefined; </script>