1. 主页
  2. 文档
  3. 学习君土脚本
  4. 君土脚本基础

君土脚本基础

本节是一篇君土脚本简介,因此这个阶段不会对君土脚本做过于详细地介绍。然后在以后的章节学习更多细节。

下面对语言核心做一个不完整介绍。

读到这里你一定很激动,诚然 —— 君土脚本是最振奋人心的网络 技术之一,而且在娴熟驾驭之后,你的网站在功能和创新力上将达到一个新的维度。

君土脚本快速入门

我们来学习一些君土脚本的核心特性,从而更好地理解它的运行机制。学习这些知识很有意义,因为这些原理普遍适用于所有编程语言,掌握好它们,可以做到融会贯通。

重要:学习本节时,请尝试在君土集成开发环境中打开示例代码项目,编译运行,看看会发生什么。
示例代码项目: 君土脚本学习(https://git.jtu.net.cn/xuexi/jtjb)

控制台

在我们开发程序时,代码的运行情况和运行结果对我们来说是很重要的,我们可以把运行过程和运行结果显示到控制台。我们可以用内置对象控制台提供的方法.日志() 把内容显示出来。

控制台.日志('世界,你好!');

注释

我们编写的计算机代码是给计算机理解和执行的。但是,在很多时候,作为我们人来说,我们也需要知道我们的代码是做什么用的。虽然,我们可以通过阅读代码来知道这些代码的作用,但是有时候代码太复杂,让我们难以准确知道代码的作用。这时,我们需要在代码里增加注释来说明代码。

君土脚本有两种类型的代码注释:

  • 单行注释将注释掉一行,并在它前面用两个斜杠//表示。
//打印5到控制台
控制台.日志 (5);

你也可以在一行代码后面使用单行注释:

控制台.日志 (5); //打印5
  • 多行注释将注释掉多行,注释开始时用 /* 表示,注释结束时用 */ 表示。
/*这些都是注释
控制台.日志 (10);
这些都跑不了!
控制台.日志 (99);
*/

你也可以使用这个语法在代码行中间注释一些东西:

控制台.日志(/*忽略!*/5);//仍然只打印5

数据类型

为了让程序有价值,我们需要能够处理最简单的数据单元:数字、字符串、结构体、布尔值等。 君土脚本提供完整的数据类型来为我们定义我们要处理的事物。

君土脚本提供的数据类型有:

  • /*number*/(数字):任何数字,包括小数:4、8、1516、23.42。
  • /*string*/(字符串):键盘上任何由单引号包围的字符(汉字、数字、字母、空格、符号等):'…'或双引号"…". 虽然我们更喜欢单引号。有些人喜欢把字符串看作是文本的一个花哨的词。
  • /*boolean*/(布尔型):该数据类型只有两个可能的值——真或假(不带引号)。把布尔值看作是开关或者是“是”或“否”问题的答案是很有帮助的。
  • /*null*/:该数据类型表示有意缺少值,由关键字(不带引号)表示。
  • /*undefined*/:该数据类型由关键字(没有引号)表示。它也表示没有值,尽管它的用法与空不同。
  • /*symbol*/(符号):语言的新特性,符号是唯一的标识符,在更复杂的编码中很有用。现在不需要担心这些。
  • /*object*/(对象):相关数据的集合。

我们可以通过控制台把数据显示出来。

控制台.日志 (10);  //数字
控制台.日志 (10.11);  //数字
控制台.日志 ('你好');

变量

变量 是存储值的容器。要声明一个变量,先输入关键字 定/*let*/,然后输入合适的名称,加冒号(:)和数据类型:

定 变量名:文;

注:行末的分号表示当前语句结束,不过只有在单行内需要分割多条语句时,这个分号才是必须的。然而,一些人认为每条语句末尾加分号是一种好的风格。分号使用规则的更多细节请参阅 君土脚本 分号使用指南。

注:几乎任何内容都可以作为变量名,但还是有一些限制(请参阅 变量命名规则)。如果你不确定,还可以 验证变量名 是否有效。

注:君土脚本 对大小写敏感,值A 和 值a 是不同的。如果代码出现问题了,先检查一下大小写!

变量定义后可以进行赋值:

变量名 = '张三';

也可以将定义、赋值操作写在同一行:

定 变量名 = '张三';

可以直接通过变量名取得变量的值:

控制台.日志 (变量名);

变量在赋值后是可以更改的:

定 变量名 = '张三';
变量名 = '李四';
控制台.日志 (变量名);

注意变量可以有不同的 数据类型 :

变量解释示例
文/*string*/一串文本(字符串)。字符串的值必须将用引号(单双均可,必须成对)括起来。定 名字:文 = '张三';
数/*number*/数字。无需引号。定 年龄:数 = 10;
两/*boolean*/两值(真 / 假)。 真(true)/ 假(false) 是 君土脚本 里的特殊关键字,无需引号。定 在下雨:两 = 真;
数组/*Array*/数组,用于在单一引用中存储多个值的结构。定 变量名:文[] = ['张三', '李四','王二'];
元素引用方法:
变量名[0], 变量名[1] ……
象/*object*/对象,君土脚本 里一切皆对象,一切皆可储存在变量里。这一点要牢记于心。定 张三 = {姓名:'张三',年龄: 10};
以及上面所有示例都是对象。

那么变量有什么用呢?我们说,编程时它们无所不在。如果值无法改变,那么就无法做任何动态的工作,比如发送个性化的问候,或是改变在图片库当前展示的图片。

运算符

运算符 是一类数学符号,可以根据两个值(或变量)产生结果。以下表格中介绍了一些最简单的运算符。

运算符解释符号示例
将两个数字相加,或拼接两个字符串。+6 + 9;
"世界," + "你好!";
减、乘、除这些运算符操作与基础算术一致。只是乘法写作星号,除法写作斜杠。-*/9 - 3;
8 * 2; //乘法在君土中是一个星号
9 / 3;
赋值运算符为变量赋值(你之前已经见过这个符号了)=定 姓名 = '张三';
等于测试两个值是否相等,并返回一个 真(true)/假(false) (两)值。===定 年龄 = 3;
年龄 === 4; // 假(false)
不等于和等于运算符相反,测试两个值是否不相等,并返回一个 真(true)/假(false) (两)值。!==定 年龄 = 3;
年龄 !== 3; // 假(false)
取非返回逻辑相反的值,比如当前值为真,则返回 假(false)!原式为真,但经取非后值为 假(false)
定 年龄 = 3;
!(年龄 === 3); // 假(false)

运算符种类远不止这些,不过目前上表已经够用了,以后我们还会学习完整的运算操作。

注:不同类型数据之间的计算可能出现奇怪的结果,因此必须正确引用变量,才能得出预期结果。比如控制台显示 控制台.日志("35" + "25"),为什么不能得到 60?因为引号将数字转换成了字符串,所以结果是连接两个字符串而不是把两个数字相加。输入 35 + 25 才能得到正确结果。

条件语句

条件语句是一种代码结构,用来测试表达式的真假,并根据测试结果运行不同的代码。一个常用的条件语句是 若 ... 别。下面是一个示例:

定 主食 = '米饭';
若 (主食 === '米饭') {
  控制台.日志 ('做米饭需要米。');
}
控制台.日志 ('程序完成。');

若 ( ... ) 中的表达式进行测试,用(上文所提到的)等于运算符来比较变量 主食 与字符串 '米饭' 是否相等。 相等返回 ,运行第一个代码块,打印'做米饭需要米。'。再打印'程序完成。'

再一个例子

定 主食 = '面条';
若 (主食 === '米饭') {
  控制台.日志 ('做米饭需要米。');
}
控制台.日志 ('程序完成。');

若 ( ... ) 中的表达式进行测试,用(上文所提到的)等于运算符来比较变量 主食 与字符串 '米饭' 是否相等。 不相等返回 ,不运行第一个代码块。打印'程序完成。'

再一个例子。

定 主食 = '米饭';

若 (主食 === '米饭') {
   控制台.日志 ('我最喜欢米饭了。');
} 别 {
   控制台.日志 ('但是面条是我的最爱呀……');
}

若 ( ... ) 中的表达式进行测试,用(上文所提到的)等于运算符来比较变量 主食 与字符串 '米饭' 是否相等。 如果返回 ,则运行第一个代码块;如果返回 ,则跳过第一块直接运行  之后的第二个代码块。

函数

函数 用来封装可复用的功能。如果没有函数,一段特定的操作过程用几次就要重复写几次,而使用函数则只需写下函数名和一些简短的信息。之前已经涉及过一些函数,比如:

控制台.日志 ('你好!');

控制台.日志 是函数,随时可用。

如果代码中有一个类似变量名后加小括号 () 的东西,很可能就是一个函数。函数通常包括参数,参数中保存着一些必要的数据。它们位于括号内部,多个参数之间用逗号分开。

比如, 控制台.日志() 函数在控制台打印,还应为其提供一个字符串参数,以告诉它打印的内容。

好消息是:人人都能定义自己的函数。下面的示例是为两个参数进行乘法运算的函数:

务 乘(数1: 数, 数2: 数): 数 {
  定 果 = 数1 * 数2;
  回 果;
}

尝试在运行这个函数,不妨多试几组参数,比如:

  控制台.日志(乘(4, 7));
  控制台.日志(乘(20, 20));
  控制台.日志(乘(0.5, 3));

注: 语句告诉代码运行环境当前函数返回  变量。这一点很有必要,因为函数内定义的变量只能在函数内使用。这叫做变量的 作用域。

属性

当我们用一些类型的数据来描述我们要用程序来处理的事物时,我们就在为这些事物定义了属性。

例如,对于字符串,”你好”,它有一个长度属性2。我们通过 . 来访问对象的属性。我们可以把它显示出来。

控制台.日志('你好'.长);

我们可以通过字符串连接,把输出信息说的更清楚。

 控制台.日志('"你好"的长度是' + '你好'.长);

方法

一个事物不仅可以有属性,还可以有针对该事物的操作,这些操作就是这个事物的方法。我们通过 . 来访问对象的方法。

我们已经使用的日志 就是控制台的方法

子() 是文本的方法。通过指定开始位置和字符数,得到一个新的字符串。

控制台.日志 ('欢迎使用君土'.子 (0, 2)); //打印出"欢迎"

内置对象

君土脚本提供了许多有用的内置对象来帮助我们编程。除了控制台,还有其它。例如用来做复杂计算的 算/*Math*/ 对象。

我们可以用算对象提供的方法来做数学计算。
算.绝对(x:数) //返回一个数的绝对值。

控制台.日志 (算.绝对(12)); //打印出 12
控制台.日志 (算.绝对(-8)); //打印出 8

总结

本节介绍了君土脚本的基本编程概念,为您以后的编程学习打好基础。