一、变量的声明和作用域
1.正常情况下同名的局部变量会覆盖掉全局变量
<script language="javascript"> var str = "stra"; function fun(){ var str = "strb"; document.write(str);//返回"strb" } fun(); document.write(str);//返回"stra" </script> |
2.在函数体中使用未声明的变量,那它就是全局变量
<script language="javascript"> var str = "stra"; function fun(){ str = "strb"; document.write(str);//返回"stra",这里str是全局变量 } fun(); document.write(str);//返回"stra" </script> |
<script language="javascript"> function fun(){ str = "stra"; } fun(); document.write(str);//返回"stra";VBscript无值 </script> |
3.JavaScript中变量的作用域没有块级概念,在函数体任何地方声明的变量在整个函数体中都是有效的
<script language="javascript"> var str = "stra"; function fun(){ document.write(str);//返回"undefined",局部变量str在整个函数体中都有效;,VBscript无值 if(true){ var str = "strb"; } document.write(str);//返回"strb" } fun(); document.write(str);//返回"stra" </script> |
基于上边几点,要养成使用变量都先声明并且将声明变量部分放在代码最上方的习惯!
二、变量的基本类型和引用类型
<script language="javascript"> |