比如在add1()中定义了变量a=1,可以在add2()中可以直接调用变量a吗
<script type="text/javascript"> var quanju = 0;//全局变量 function rec(){ var a = 1;//函数变量 //quanju 可以在此使用 function func_b(){ var b = a;//a可以在此使用 alert(b); //quanju 可以在此使用 } func_b(); } function add2(){ // a不能再这里使用 //quanju 可以在此使用 alert(quanju ); } </script>
仁兄,这就是JS的变态之处,函数里面嵌套函数,此函数只能在rec函数内部使用。js的变量分两种,一种是全局变量,这种变量一般在js文件开始的时候定义例如;
<script type="text/javascript"> var a = 0;//定义一个全局变量 </script>
这种变量在此JS里面任何一处均可以使用。它的作用域是针对整个js文件的。作用域是指这个变量的可见范围,就是你能用的范围。
第二种就是函数内部变量,这种变量的作用域只是在函数内部,但是呢,招架不住函数里面嵌套函数,但是函数体的作用域就是那两个{}之间,所以,上面的例子,可是说明a可以在func_b()使用。
嵌套的可以
不可以,在add1() 定义的变量是属于add1(),其他方法无法访问, 除非使用全局变量