变量范围

2016-02-19 18:14 8 1 收藏

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的变量范围懂设计的网友们快点来了解吧!

【 tulaoshi.com - 编程语言 】

  JScript 有两种变量范围:全局和局部。假如在任何函数定义之外声明了一个变量,则该变量为全局变量,且该变量的值在整个持续范围内都可以访问和修改。假如在函数定义内声明了一个变量,则该变量为局部变量。每次执行该函数时都会创建和破坏该变量;且它不能被该函数外的任何事物访问。

  像 C++ 这样的语言也有“块范围”。在这里,任何一对“{}”都定义新的范围。JScript 不支持块范围。

  一个局部变量的名称可以与某个全局变量的名称相同,但这是完全不同和独立的两个变量。因此,更改一个变量的值不会影响另一个变量的值。在声明局部变量的函数内,只有该局部变量有意义。

var aCentaur = "a horse with rider,";  // aCentaur 的全局定义。// JScript 代码,为简洁起见有省略。function antiquities()  // 在这个函数中声明了一个局部 aCentaur 变量。{// JScript 代码,为简洁起见有省略。var aCentaur = "A centaur is probably a mounted Scythian warrior";// JScript 代码,为简洁起见有省略。   aCentaur += ", misreported; that is, ";  // 添加到局部变量。// JScript 代码,为简洁起见有省略。}  // 函数结束。var nothinginparticular = antiquities();aCentaur += " as seen from a distance by a naive innocent.";/*在函数内,该变量的值为 "A centaur is probably a mounted Scythian warrior,misreported; that is, ";在函数外,该变量的值为这句话的其余部分:"a horse with rider, as seen from a distance by a naive innocent."*/  

  很重要的一点是注重变量是否是在其所属范围的开始处声明的。有时这会导致意想不到的情况。

tweak();var aNumber = 100;function tweak()  {var newThing = 0;  // 显式声明 newThing 变量。// 本语句将未定义的变量赋给 newThing,因为已有名为 aNumber 的局部变量。newThing = aNumber;//下一条语句将值 42 赋给局部的 aNumberaNumber = 42;if (false)  {var aNumber;  // 该语句永远不会执行。aNumber = 123;  //  该语句永远不会执行。}  // 条件语句结束。}  // 该函数定义结束。

  当 JScript 运行函数时,首先查找所有的变量声明,

var someVariable;

  并以未定义的初始值创建变量。假如变量被声明时有值,

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)
var someVariable = "something";

  那么该变量仍以未定义的值初始化,并且只有在运行了声明行时才被声明值取代,假如曾经被声明过。

  JScript 在运行代码前处理变量声明,所以声明是位于一个条件块中还是其他某些结构中无关紧要。JScript 找到所有的变量后立即运行函数中的代码。假如变量是在函数中显式声明的 — 也就是说,假如它出现于赋值表达式的左边但没有用 var 声明 — 那么将把它创建为全局变量。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1617051.html

延伸阅读
标签: Web开发
最近做了一阶段的AJAX开发,有一些心得体会。日后会慢慢写出来,也请AJAXer多多指教~   刚开始写AJAX代码的时候,直接参照的是AJAX基础教程一书中的代码(该书真的很不错,是AJAX入门的经典教材,是图灵出版社的。计算机方面的书籍,我最信任的就是O'R和图灵的)。       该书的创建XMLHttpReque...
标签: Web开发
function querystring(qs){ s=location.href; s=s.replace("?","?&").split("&"); re=""; for(i=1;is.length;i++){ if(s[i].indexOf(qs+"=")==0){   re=s[i].replace(qs+"=","");   } }   return re; } 非常不错的获取传递来的变量
标签: Web开发
我们使用 str.replace(/s/g,"world") 可以将字符 "s" 替换成 "world" 如果要替换一个变量呢? s = "abc" 怎样将全部 abc 替换成 "world" ? 代码如下: str.replace(new RegExp(s,"g"),"world") s 中不要包含正则元字符 否则会产生错误
标签: 羊水 羊水指数
每月的羊水指数标准范围 羊水就是怀孕时子宫羊膜腔内的液体,羊水在整个怀孕过程中起到了重要的作用。根据女性怀孕的时间不同,羊水指数标准也不相同。相信大家也很关心羊水指数标准,不知道羊水指数标准是怎么样的。下面介绍羊水指数标准,一起来看看吧! 羊水指数标准 一、羊水深度 B超检查表示最大羊水池的垂直深度,小于2cm表示...
标签: flash教程
 Flash的actionScript和其他的语言有不同的地方, 我查了几本书, 把我所了解的补充一下。     1.Flash没有真正意义上的全局变量, 这点和Director不同, 全局变量是指一旦声明, 在整个电影都有效, 这点Flash 是做不到的。对于我们来说, 要讨论的是:     a...

经验教程

331

收藏

38
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部