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

JavaScript 的作用域问题

2014-06-06 22:52 253 查看
对于下面的一段代码,

<span style="font-size:18px;">function foo(){
var s = 1;
}
foo();
console.log(s);</span>

firebug 输出为undefined

当我们把function foo()的var 去掉后

<span style="font-size:18px;">function foo(){
s = 1;
}
foo();
console.log(s);</span>

firebug输出为1;

这是因为javascript作用域的问题,

接着再看一个问题

function foo(){

s = 1;

function inner(){
s = 'asdfadf2';
}
inner();
}

foo();

console.log(s);

输出的是asdfadf2,不使用var定义的变量,不论是在一层的function和还是二层的function里面,都成了全局变量

JavaScript对于没有使用var定义的变量,都自动将其声明放在程序的最开始处。

下面的例子也是这样子

function foo(){

    yuan = "yuan1";

    function inner(){

        yuan = "yuan2";

    }

    inner();

}

foo();

console.log(yuan);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript 全局变量