变量
TJS2 的变量是由 var 关键字指定的。TJS2 中,变量如果不进行实现声明则无法使用。
var 关键字的使用方法如下所示。
var变量名;
可以通过 , (逗号) 分隔在同一个语句中指定多个变量名称。当变量需要指定初始值的时候,可以通过类似
var变量名=初期値;
这样的方法给变量指定初始值。
例:
varvariable=0;
varvar2=variable+2;
varvar3="thisisvar3.";
varvar1,var2,var3;
vara=0,b=1,c=3;
在声明变量时不需要指定变量的类型,变量将自动被更改为赋值对象的类型。此外,在计算的过程以及不同的上下文中,变量的类型将会被自动转换。
变量名
所有有效的标示符都可以作为变量名使用。
例:
varampan;
var123a;//变量名不能使用数字开头,该句非法
varfunction;//function为保留字,该句非法
varfunction1;//虽然包含保留字,但是并非保留字,所以该句合法
var变量その一;//全角文字,包括汉字和全角符号等都可以使用
变量的2重声明
对相同名称的变量进行两次以上的声明并不会出错。只是,如果第二次以后的声明中指定了初始值,则这个初始值将被赋给变量。如果第二次以后的声明没有指定初始值,则变量的值将是 void 。
例:
vara=0;
vara;//第二次的声明(不会出错,但是a的值会变成void)
vara=-1;//第三次的声明(不会出错,但是a的值会被赋为-1)
变量的有效作用域
{ } (代码段) 中声明的变量,只在该代码段中有效,也就是所谓的本地变量。
此外,TJS2 和 C 语言不同,对于能够声明变量的位置没有限制。
例:
while(t--)
{
varratio=t/all;//声明变量'ratio'
setRatio(ratio);
}
//当控制转移到这里的时候,ratio已经被删除了
vartest;//在这种地方也可以声明变量
此外,如果在代码段内声明了和代码段外的变量同名的变量,则代码段内只能访问到新声明的变量(本地变量)。
例:
varratio=0;
if(flag)
{
varratio;//与代码段外声明的变量同名的变量
ratio=buf.position/buf.totalTime;//只能访问代码段内的ratio
setRatio(ratio);
}
//离开代码段是,代码段内的ratio被删除,而代码段外的ratio则不受影响
ratio=-1;
Note
在所有的作用域之外(被称作全局作用域)使用 var 声明变量,则该变量将成为全局对象的成员。