标签:style 声明 function 写法 sim 系统 ext cti win
<script> text=5 //全局变量 var b=a //全局变量 function a(){ a=3 //全局变量 } </script>
声明局部变量
<script> vara=123 //局部变量 </script>
全局、局部变量案例分析
function show(){ var a=b=c=10; } show() console.log(b,c); console.log(a); //结果是a报错,b,c=10 //看到这个案例的同学注意以上说的全局变量的特点
详细解释:因为a是使用var声明的是局部变量,函数外访问不到,而且函数外面也没有声明a,所以报错。而b,c 没用var声明,是全局变量,所以函数外可以访问到。
var a = 10; function test(){ a = 100; alert(a); alert(this.a); var a; alert(a) } test() //结果 100 10 100
详细解释:js在执行前会对整本文件的声明部分做完整分析,从而确定变量的作用域,所以在函数test执行前。
1、由于第6行声明了局部变量,所以函数内部的a都指向已经声明的局部变量,所以第4行输出100.
2、第5行输出this.a,我们都知道函数内部的this指针指向的是函数的调用者,在这里函数test被全局对象调用,所以this指向全局对象window,所以this.a=window.a,一开始生命了全局变量a=10,所以第5行结果为10.
3、第七行输出结果为100,因为局部变量a在第3行已经被赋值了100,所以直接输出局部变量a的值。
var a = 100; function test(){ console.log(a); var a= 10; console.log(a); } text()//undefinde 10
var a =100; function test(){ alert(a) a=10 alert(a) } test(); alert(a) //100 10 10
标签:style 声明 function 写法 sim 系统 ext cti win
原文地址:http://www.cnblogs.com/wdz1/p/6909982.html