您的位置:首页 > Web前端 > JavaScript

【javascript】变量作用范围

2014-12-04 13:55 351 查看
一、全局变量&局部变量

test=""  全局变量

var test=""  局部变量,无块的概念,作用域为function 或者script块

二、有意思的特例

1.因为没有块的概念,会出现奇怪的结果

<script>
var scope = "globale";
function test()
{
alert(scope);//打印undefined。因为scope在test函数被重新定义覆盖,即使执行这条语句之前并未重新赋值全局变量。
var scope = "local";
alert(scope); //打印local
}
test();

</script>


效果等同于

<script>
var scope = "global";
function test()
{
var scope;
alert(scope);
var scope = "local";
alert(scope);
}
test();
</script>


2. 例子

<script type="text/javascript">
alert('kuai1:'+i);
function test(){
var j = 2;
alert('test:'+i+','+j);
i = 5;
}
</script>
<script type="text/javascript">
var i = 1;
alert('kuai2:'+i);
function test1(){
alert('test1:'+i+','+j);
}
test();
test1();

//执行顺序 alert('kuai1:'+i); Error,因为i在第一个script块中未定义 //alert('kuai2:'+i); 弹窗kuai2:1 因为i在第二个script块中定义
//test() 弹窗test:1,2   如果function test()里面的i=5修改为var i=5就会弹窗出test:undefined,2
//test1() Error,因为j未定义

</script>



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: