javaScript变量的作用域
来源:互联网 发布:免费网络验证 编辑:程序博客网 时间:2024/04/29 23:52
javaScript的变量可以不声明直接使用。如果不声明,javaScript会自动隐式声明该变量为全局变量,这是一个不错的小东西。不过,如果我们不用var声明该变量,有可能出现错误。比如:
<script>
{
str = "localVar";
}
foo();
document.write(str);
</script>
结果显示:
localVar
本来函数foo中的str是局部变量,但是我们给用var声明,javaScript自动隐式声明为全局变量,造成str成为全局变量,修改了函数外的str的值。如果我们用var声明,结果很明显是不同的。
<script>
{
var str = "localVar";
}
foo();
document.write(str);
</script>
结果显示:
myvar
由于函数是可以嵌套的,所以最后是一个很有意思的嵌套函数来学习一下变量的作用域:
<script>
var scope = "scope";
function checkscope()
{
var scope = "local scope";
function nested()
{
var scope ="nested scope";
document.write(scope+"<br>");
}
nested();
document.write(scope+"<br>");
}
checkscope();
document.write(scope);
</script>
结果显示:
local scope
scope
此外,如果在函数体内声明过一个变量,那个不管这个变量是在声明之前出现还是声明之后出现(当然,在之后出现当然都知道这个变量是局部变量了,呵呵~),这个变量都是局部变量,我也是刚知道,嘿嘿
实例:
<script>
var scope = "scope";
function foo()
{
document.write(scope+"<br>");//在此,scope是局部变量,已声明但并未初始化;
var scope = "myscope";
document.write(scope+"<br>");
}
foo();
</script>
结果显示:
undefined
myscope
<script>
var str = "myvar";
function foo(){
}
foo();
document.write(str);
</script>
结果显示:
localVar
本来函数foo中的str是局部变量,但是我们给用var声明,javaScript自动隐式声明为全局变量,造成str成为全局变量,修改了函数外的str的值。如果我们用var声明,结果很明显是不同的。
<script>
var str = "myvar";
function foo(){
}
foo();
document.write(str);
</script>
结果显示:
myvar
由于函数是可以嵌套的,所以最后是一个很有意思的嵌套函数来学习一下变量的作用域:
<script>
var scope = "scope";
function checkscope()
{
}
checkscope();
document.write(scope);
</script>
结果显示:
local scope
scope
此外,如果在函数体内声明过一个变量,那个不管这个变量是在声明之前出现还是声明之后出现(当然,在之后出现当然都知道这个变量是局部变量了,呵呵~),这个变量都是局部变量,我也是刚知道,嘿嘿
实例:
<script>
var scope = "scope";
function foo()
{
}
foo();
</script>
结果显示:
undefined
myscope
0 0
- javascript变量的作用域
- JavaScript的变量作用域
- javascript变量的作用域
- JavaScript的变量作用域
- Javascript的变量作用域
- javaScript变量的作用域
- javascript变量的作用域
- javascript的变量作用域
- JavaScript的变量作用域
- JavaScript 变量的作用域
- JavaScript的变量作用域
- JavaScript 变量的作用域
- javaScript变量的作用域
- JavaScript变量的作用域
- javascript变量的作用域javascript
- 理解JavaScript的变量,变量作用域,作用域链
- JavaScript 变量作用域
- javascript 变量作用域
- javaScript笔记(2)
- javascript笔记(3)
- (续一)javaScript笔记(3)
- valueOf()的用法
- 传值与传址
- javaScript变量的作用域
- javaScript中in运算符详解
- Win7、Windows Server 2008下无法在Windows Service中打开一个已经存在的Excel 2007文件问题的解决方案
- #ifndef#define#endif的用法【转载…
- C语言中是没有字符串数组的,用C语…
- c语言宏定义
- 往右键里添加编辑软件快捷方式
- msn无法查看历史聊天记录解决方法
- Microsoft Office 2007 换号方法