语言特性-变量作用域
在Javascript中,作用域是由函数划分的不是块{while,for,if}划分的,写惯了C#,C++的代码后,这块要注意! [需注意:for循环是无法创建本地上下文的。独立的作用域只有通过函数代码才能创建出来]
<script language="javascript" type="text/javascript">
for (var k = 0; k < 2; k++) {
alert(k);
}
alert(k);
alert(window.k == k);
</script>
//虽然for循环结束了,但是K依然有效
<script language="javascript" type="text/javascript">
var temp = "wo laishi window";
if (true) {
temp = "wo laisi if"; //此处依旧为全局变量,覆盖原数据值
}
alert(temp);
function nation() {
var temp = "wo laizi nation";
alert(temp); //仅此一处为局部变量
}
nation();
alert(temp);
alert(temp == window.temp);
//---------------------------------------------
var a = "rxm";
function fun() {
alert(a);
var a = "123";
alert(a);
}
fun();
alert(a);
//输出结果:undefined;123;rxm
//---------------------------------------------
function fun() {
var a = "rxm";
b = "cwr";
}
fun();
alert(a); //错误,a局部变量
alert(b); //"cwr",b全局变量。
//此处的b相当于[所有属于全局作用域的变量都是window的属性]
alert(window.b == b);
//---------------------------------------------
</script>