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);
<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中的ajax的作用域问题
- Javascript学习笔记3——变量、作用域和内存问题
- 五个小例子教你搞懂 JavaScript 作用域问题
- javascript基本类型和引用类型,作用域和内存问题
- javascript高级程序设计笔记(第4章 变量、作用域和内存问题)
- JavaScript中变量作用域问题
- JavaScript的作用域问题
- javascript的变量、作用域和内存问题
- javascript高级程序设计第四章:变量、作用域和内存问题读书笔记
- javascript 变量、作用域和内存问题小结
- JavaScript与ajax的作用域问题
- javascript变量、作用域和内存问题
- JavaScript 内部函数作用域问题及解决方法
- JavaScript几个作用域问题
- 转:javascript作用域一个经典问题
- 深入知晓JavaScript的作用域问题
- [JavaScript]使用块级作用域声明对象时要注意的一个问题
- Javascript高级程序设计第二版第四章--变量,作用域及内存问题--笔记
- JavaScript高级程序设计学习笔记--变量、作用域和内存问题
- 栋栋晓11:Javascript学习总结:变量、作用域和内存问题