JavaScript中变量的作用
文中有不对的地方请大家谅解和提出,谢谢!
1.在方法中定义一个变量的时候不用var的情况
<html>
<head>
<meta charset="GB2312"/>
<title>在方法中定义一个变量的时候不用var的情况</title>
<script type="text/javascript">
function f1(){
x=100;
alert('方法内X:'+x);
}
alert('方法外X--:'+x); //这行代码是错的,因为f1方法调用在它后面,就相当与没有定义x,直接使用
//********************************************************************************************************************//
f1(); //在这行代码之前(不包括方法内)使用变量x都是错误的。*号以上除了f1方法中,其他地方使用x都是错误的
//********************************************************************************************************************//
alert('方法外X:'+x); //这行代码正确打印出100
</script>
</head>
<body>
</body>
</html>
为了阅读起来比较舒服,下面我只留js代码
2.在js的重复定义一个变量的时候,会自动忽略第二次定义,但是不忽略赋值
<script type="text/javascript">
var n=10;
alert(n);//正确打印10
var n=1234;
alert(n);//正确打印1234
</script>
3.方法内部变量,外部将无法访问。
<script type="text/javascript">
function f1(){
var n=10;
n++;
alert(n);//正确打印出11
}
f1();//调用f1();函数
alert(n);
//这句话是错误的,以前浏览器还会提示报错,由于版本升级等等原因,现在的浏览器都不报错了,只是什么都不显示,要想查看:工具-->开发人员工具,进行调试查看错误。//这句话错误的原因是,js中定义:方法内定义的变量,方法外无法访问。而这行代码访问了f1函数中的变量n。
</script>
4.js中没有块级定义域(if、for、while等)
<script type="text/javascript">
function f1(){
var x=10;
if(x>5){
var n=10
n++;
alert(n); //正确打印出来11,
}
n++;
alert(n);
//正确打印出12,只要是学了C、C#、java等,都觉得在这里调用if语句里面的变量n会报错,实际上在js中这是正确的。
//因为js语法规定:js中没有块级定义域(if、for、while等),所以在方法内部定义的变量,在方法'任何地方'(定义变量下面的代码都能正常访问)都有效。
//for循环while等语句都是一个道理。
}
f1(); //调用f1();函数
</script>