网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月30日漏签0天
吉里吉里吧 关注:51,166贴子:70,864
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1 2 3 下一页 尾页
  • 35回复贴,共3页
  • ,跳到 页  
<<返回吉里吉里吧
>0< 加载中...

【求讨论+略技术帖】tjs2脚本语言基础

  • 只看楼主
  • 收藏

  • 回复
  • yyss
  • 左都御史
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
1楼送了


  • yyss
  • 左都御史
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
序、tjs2简介:
总之就是类似于javascript的脚本语言,是面向对象的,什么是面向对象如果不知道的可以百度= =。tjs语言其实可以实现一般编程语言的大多数功能还是很强大的。废话到此为止,下面正文……


2025-08-30 14:16:09
广告
不感兴趣
开通SVIP免广告
  • yyss
  • 左都御史
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
一、变量与表达式
首先tjs脚本可以写在以tjs为后缀名的文件中,在krkr开发中引用,但一般是直接加在ks文件里面,以@iscript开头,@endscript结尾,注释符号有别于ks用"//",写在同一行“//”后的内容会被注释掉,或者用“/*”开头、“*/”结尾,之间的内容为注释。即:
@iscript
/* tjs语言所写的内容 */
@endscript
tjs式中每一语句都要以分号“;”结尾。
变量的声明使用var指令。不分类型,能自动转换类型。转换顺序同ks中一般插入的表达式
var x; //声明变量x
var x=1;//声明变量x,初始值为1
var x=1+2;//x初始值为3
var x=1+'s';//x初始值为1s


  • yyss
  • 左都御史
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
关于表达式,“=”是赋值,用法同ls,“==”表示相等,其它的比较符号也同ks中的表达式相同。另外下++、--、+=、-=等运算符后续会说明。
例子:
var x=2;
var y=1;
var z=x+y; //z值为3
以上是很基础的东西我想一般人都知道就不多说了= =


  • yyss
  • 左都御史
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
二、判断语句和循环
判断语句同一般编程语言用if实现,tjs也同其他语言一样,诸如判断、循环、函数等整体,需要用“{ }”括起来。判断语句格式为 if(条件语句){执行语句}
例子:
var a=1;
var b=2;
var c=0;
if(a>b){
   c=a;
}
以上代码执行后c仍为0,因为a<b……
另外对于多重判断可加上else,格式同if,当然一定要现有if才有else
例如上面代码从if开始改为:
if(a>b){
   c=3;
}
else if(a==b){
   c=4;
}
else{
   c=5;
}
执行后c的值便会被改为5。


  • yyss
  • 左都御史
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
忘了说明一下,在ks中用@iscript和@endscript嵌入tjs语言时,ks中的变量也可在tjs中进行操作……例如可以用
var a='abc';
var b='efg';
f.a=a+b;
就把ks中的变量f.a赋值为了'abcefg'
另外以上和之后的tjs代码若嵌套在ks中都要加上@iscript和@endscript,我就省略了……



  • yyss
  • 左都御史
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
tjs的循环经我试验应该是没有while循环的,只有for循环,用法同javascript一样,
格式为:
for( 初始化; 继续条件; 条件指令){
/* 循环体 */
}
例子:
var a=0;
for(var i=0;i<5;i++){
   a++;
}
上面的代码将a变为5。对于没有编程经验的人需要解释一下,循环就是重复做一件事(废话),上面的var i=0定义了一个临时变量,i<5表示循环体的内容重复执行直到不满足i<5为止,i++表示每循环一次后进行的操作,这里i++等同于i=i+1。每执行一次循环前都要进行继续条件的判断(包括第一次),每次循环后都会执行条件指令一次,上面的i在第一次循环时为0,第二次就变成了1,第三次为2以此类推,直到i为5时不满足i<5的条件循环结束。a++是每次循环的内容,即将a加1,五次循环后a就变成了5.


  • yyss
  • 左都御史
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
循环的延伸:
由于没有while循环,很多事都不方便,还好for循环还有break和continue指令用来弥补。break是整个循环停止,continue使循环直接跳入下一次循环。
例子:
var a=0;
for(var i=0;i<10;i++){  
   if(i==6){  
   break;
   }
   else if(i==3){
   continue;
   }
   a+=i;//即a=a+i
}
上段代码,如果没有包涵break和continue的两句判断语句的话,就是将a赋值为从0、1、2加到9的和,结束后a==45。有了他们当循环执行到i==6时就强制结束,而执行到i==3时直接跳到下一次循环,结果就是a==0+1+2+4+5==12了。另外当然for后面的括号里的三个式子可以使其他形式,如
var b=5;
var a;
for(a=0;a<b;a+=2){
/*内容*/
}
循环内可以嵌套循环:
var k=0;
for(var i=0;i<5;i++){
   for(var j=0;j<3;j++){
   k++;
   }
}
结果k变为15


2025-08-30 14:10:09
广告
不感兴趣
开通SVIP免广告
  • 水螅707
  • 知县
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
其实我觉得tjs让初学者最迷茫的地方是语法是在tjsdoc里的……但是要用来写游戏最常用得到的函数是在kr2doc里的这点……


  • yyss
  • 左都御史
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
三、数组tjs中有两种数组,一种以数字为下标,一种以字符或字符串为下标。数组即是一个包含多个变量值的变量。定义一个数字下标数组的方法为 var a=[]; 这样a就是一个任意长度的数组。数字的下标从0开始
执行:
a[0]='a';
a[1]='b';
a[2]='c';
就给a服了三个值。如果一开始限定a的长度可以用var a=[[],[],[]]就定义了一个包含三个值的数组.而由于tjs的默认数组无越界等麻烦所以一般不会给数组套上长度。另外经我查看krkr自带的说明文档,f.a= [] if f.a=== void; 是给ks中变量设成数组的方法。


  • yyss
  • 左都御史
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
关于多维数组:
使用for循环:
var a=[];
for(var i=0;i<5;i++){
   a[i]=[];
}
就定义了一个二维数组(第一维长度为5),这样就可以给a[1][2]、a[0][4]等赋值了


  • yyss
  • 左都御史
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
以字符或字符串为下标的数组是把[]中的数字变为字符或字符串。
声明方法为:var a=%[];
这样就可以执行下列语句:
a['a']=1;
a['b']=2;
a['c']=3;
就给数组a赋了三个值。这样做就使数组下标有了意义,人看起来易于记忆……其他用法同普通数组


  • yyss
  • 左都御史
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
继续例子:
function length(a){
   var l=0;
   for (var i=0; ;i++){
   if(a[i]==void){
   break;
   }
   l++;
   }
   return l;
}
var a=[];
for(var i=0;i<10;i++){
   a[i]=i;
}
var b=length(a);
上面的函数length用于求一个数组的长度,执行后b==10,使a已被赋值的长度(线性),如果赋值操作跳过a[6],则b==6。a[i]==void是用来判断a[i]是否未被赋值的。函数中的for循环没有设继续条件就使得只要无break就无限循环,这种用法要格外注意,如果不是一定能break掉的就会造成死循环,不会停止了


  • yyss
  • 左都御史
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
五、类与面向对象
终于到基础教程的最后了,之所以tjs是面向对象的就是因为有类这个东西……类用于声明一个类型的变量,它可以有多种属性,进行不同的实例化后可以用于各种操作。面向对象不了解的请百科。了解面向对象后再来看类的使用。
首先是类的声明:
class 类名 extends 父类名{
   /*内容*/
}
其中extends是继承其他的类,也可以继承krkr自带的类,之后会再说明。先来讲不带继承的……


2025-08-30 14:04:09
广告
不感兴趣
开通SVIP免广告
  • yyss
  • 左都御史
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
类一般有多个属性,需要在类的开头声明,另外一般要包含初始化的函数,此函数名必须与类名一样,用于实例化时给类的各属性赋初值或进行其他操作。例子:
class testClass {
   var a;
   var b;
   function testClass() {
   this.a='hellow';
   this.b='world';
   }
};
声明了一个名为testClass的类,他有两个属性a,b。下面代码是实例化的例子:
var t=new testClass();//定义t是testClass的一个实例,并初始化
f.a=t.a+" "+t.b;
这样krkr中的变量f.a就被赋值为了“hellow world”。
类中也可以定义其他多个函数,另外this声明是当前类中的属性,一般可以不加,但如果遇到重名就必须要加上。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 3 下一页 尾页
  • 35回复贴,共3页
  • ,跳到 页  
<<返回吉里吉里吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示