网络编程
位置:首页>> 网络编程>> JavaScript>> Javascript学习第一季 二(2)

Javascript学习第一季 二(2)

作者:cssrain 来源:无忧脚本 发布时间:2008-06-24 18:20:00 

标签:函数,javascript,学习

6 , 变量的作用域:
Js有2种:全局和局部。
从名字的定义可以知道,全局变量的作用域是全局性的。
在js代码中,处处都有定义。
局部变量的作用域是局部的。
在函数体内定义。

同名的局部变量的优先级比同名的全局变量高,下面的例子说明了这点:

var a ="abc"; //全局变量
function check(){
var a = "efg"; //同名的局部变量
document.write(a); 
}
check(); //  输出 efg

看一个比较经典的例子:
 

 var scope = "global";
function f(){
     alert(scope); //输出 undefined
     var scope = "local";
     alert(scope); //输出 local
}
f();

为什么第一个会输出undefined 呢?

因为js规定当 局部变量和全局变量的名称相同的时候,函数体内的同名全局变量会被隐藏。
那么刚才例子 实际 等价于:

function f(){
var scope;
alert(scope); 
     scope = "local";
     alert(scope);
}
f();

OK,如果你看懂了这个例子,说明你对局部和全局的一些区别稍微了解了。

7 , 变量的作用域:

从里到外:
词法作用域    作用域链    变量查找

var x = 1;
function f(){
  var y =2 ;
function g(){
   var z =3 ;
}

调用g()对象; z =3 ;
调用f()对象; y =2 ;


全局变量  x = 1       在此定义了吗?
         是
否           
获得值
在此定义了吗?
         是
否           
获得值
在此定义了吗?
         是
否           
获得值
未定义

8 , 客户端全局变量:

在客户端js中,Window对象代表浏览器窗口,他是一个全局对象。、

比如 ;我们常用的 parseInt() , Math() 都是Window对象定义的属性。

Js允许多个全局变量的执行环境,每个环境有不同的全局对象。

比如:客户端js的每个独立的浏览器窗口,或者同一窗口的不同帧。

其中的代码都运行在自己的执行环境中,具有自己的全局对象。

当然可以使用 表达式 parent.frames[0].x  ; 来引用第一个帧中的全局变量 x  ;这样就把不同帧中的代码联系起来了。

不过这里有安全性问题。

总结;

主要讲了 传值和传址 和 函数的作用域 。

对新手来说稍微难理解些。如果还有不懂,可以google 搜索资料或者联系我 ,可以去我的blog 给我留言 :http://www.cssrain.cn/LoadMod.asp?plugins=GuestBookForPJBlog

今天讲到这里了,呵呵,明天继续。相信大家的js技术会一步步提高的。

由于格式问题。建议下载word版看:

远程下载:http://www.cssrain.cn/demo/a/1-2.doc

本站下载Javascript学习第一季(2).rar (12.83 KB)

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com