作家
登录

Javascript中的变量使用说明

作者: 来源:www.28hudong.com 2013-03-30 01:35:30 阅读 我要评论

javascript中的所有变量都是类型松散的,不同于其他面向对象语音的变量声明都是强类型的.因此Javascript 的变量声明是不包括类型的。通过var关键字或者直接写变量名来声明一个变量,如: var v = 1; v=1; 这时有人可能会问,上述的两种声明有什么区别,为什 么会有这两种不同的声明方式,这就涉及到javascript中变量的作用域了。在javascript中,变量的作用域包括全局和函数级别的。 全局变量可以声明在函数体外,无论使用上述的哪种声明方式,在函数体外 声明的变量都是全局变量。如: 复制代码 代码如下: <script type="text/javascript" language="javascript"> var v = 1; function foo() { alert(v); } w = 2; function bar() { alert(w); } foo(); </script> 运行结果:1 2 另外,在函数内部声明的变量如果不使用var关键字,声明的变量也将是全局变量。如: 复制代码 代码如下: <script type="text/javascript" language="javascript"> function foo() { v = 1; } foo(); alert(v); </script> 运行结果:1 但是需要注意,这种情况下,若要使用变量,必须先调用声明变量的函数对变量进行初始化, 如foo(),否则,将会出现“变量v未定义”的错误。 全局变量将作为window对象的属性存在,因为可以 通过window.$($表示变量名)访问。当然也可以通过变量名直接访问。下面会讲到为什么有这两种访问方式。 在函数内部通过var关键字声明的变量将是函数级别的变量,其作用域仅仅限于函数内部。如: 复制代码 代码如下: <script type="text/javascript" language="javascript"> function foo() { var v=1; alert(v); } alert(v); </script> 运行结果:1 变量“v”未定义 通过上面的分析,可以发现关键字var主要作用 是定义函数级别的变量。 细心的朋友可以会问,如果在函数内部和外部定义了相同的变量,会是什么样的结果呢?如: 复制代码 代码如下: <script type="text/javascript" language="javascript"> var v=1; function foo() { alert(v); var v=2; } foo(); </script> 运行结果:undefined !!!!!也许有人会比较郁闷了,v明明白白的定义在函数foo()体外,为什么会是 undefined呢?这就涉及到javascript的解析了。根据经验,javascript对于函数体内变量的解析过程是: 搜索所有的 var关键字,将其变量声明放到函数体的最前面,赋值和使用仍然保持不变,这样,上面的javascript实际上是等同于: 复制代码 代码如下: <script type="text/javascript" language="javascript"> var v=1; function foo() { var v; alert(v); v=2; } foo(); </script> 照此分析,产生上述 的结果就显而易见了,由于函数内部的变量的优先级高于全局变量的优先级(大部分的编程语言都是这样), 函数内部的变量v覆盖了全局变量v,但是由于在使用函数内部变量v时,它仅仅声明,但未赋值,因此结果是undefined。 如果在方法 体内仍然要使用定义的全局变量v,window对象此时派上大大的用场了,可以通过window.v来访问。如: 复制代码 代码如下: <script type="text/javascript" language="javascript"> var v=1; function foo() { alert(window.v); alert(v); var v=2; } foo(); </script> 运行结果:2 undefined

  推荐阅读

  IE8 中使用加速器(Activities)

在http://ie.microsoft.com/activities/zh-chs/default.aspx有对加速器的详细介绍。 在http://msdn.microsoft.com/en-us/library/cc289789(VS.85).aspx也有说明。 因为Activities是用XML文件来描述的,XML文件提供>>>详细阅读


本文标题:Javascript中的变量使用说明

地址:http://www.17bianji.com/kaifa2/JS/26396.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)