变量

 TJS2 的变量是由 var 关键字指定的。TJS2 中,变量如果不进行实现声明则无法使用。
 var 关键字的使用方法如下所示。

 var 变量名;

 可以通过 , (逗号) 分隔在同一个语句中指定多个变量名称。当变量需要指定初始值的时候,可以通过类似

 var 变量名 = 初期値;

 这样的方法给变量指定初始值。

例:
    var variable=0;
    var var2=variable+2;
    var var3="this is var3.";
    var var1,var2,var3;
    var a=0,b=1,c=3;


 在声明变量时不需要指定变量的类型,变量将自动被更改为赋值对象的类型。此外,在计算的过程以及不同的上下文中,变量的类型将会被自动转换。

变量名

 所有有效的标示符都可以作为变量名使用。

例:
    var ampan;
    var 123a;  // 变量名不能使用数字开头,该句非法
    var function; // function 为保留字,该句非法
    var function1; // 虽然包含保留字,但是并非保留字,所以该句合法
    var 变量その一; // 全角文字,包括汉字和全角符号等都可以使用

变量的2重声明

 对相同名称的变量进行两次以上的声明并不会出错。只是,如果第二次以后的声明中指定了初始值,则这个初始值将被赋给变量。如果第二次以后的声明没有指定初始值,则变量的值将是 void 。

例:
    var a=0;
    var a; // 第二次的声明(不会出错,但是 a 的值会变成 void)
    var a=-1; // 第三次的声明 (不会出错,但是 a 的值会被赋为 -1)

变量的有效作用域

 { } (代码段) 中声明的变量,只在该代码段中有效,也就是所谓的本地变量
 此外,TJS2 和 C 语言不同,对于能够声明变量的位置没有限制。

例:
    while(t--)
    {
        var ratio=t/all; // 声明变量 'ratio' 
        setRatio(ratio);
    }

    // 当控制转移到这里的时候,ratio 已经被删除了

    var test; // 在这种地方也可以声明变量


 此外,如果在代码段内声明了和代码段外的变量同名的变量,则代码段内只能访问到新声明的变量(本地变量)。

例:
    var ratio=0;
    if(flag)
    {
        var ratio; // 与代码段外声明的变量同名的变量

        ratio=buf.position / buf.totalTime; // 只能访问代码段内的 ratio 
        setRatio(ratio);
    }

    // 离开代码段是,代码段内的 ratio 被删除,而代码段外的 ratio 则不受影响
    ratio=-1;


Note
 在所有的作用域之外(被称作全局作用域)使用 var 声明变量,则该变量将成为全局对象的成员。