变量范围

趣多多71

趣多多71

2016-02-19 18:14

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

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

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

  像 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 运行函数时,首先查找所有的变量声明,

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)
var someVariable;

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

var someVariable = "something";

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

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


展开更多 50%)
分享

猜你喜欢

变量范围

编程语言 网络编程
变量范围

变量的变量,PHP和你

PHP
变量的变量,PHP和你

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

标量变量和数组变量

编程语言 网络编程
标量变量和数组变量

VBScript变量

编程语言 网络编程
VBScript变量

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

条件编译变量

编程语言 网络编程
条件编译变量

麻醉的范围

电脑网络
麻醉的范围

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

GetObject 函数

GetObject 函数

另类扩展名同样执行ASP

另类扩展名同样执行ASP
下拉加载更多内容 ↓