3.1 JavaScript脚本基础
Unity 3D中的JavaScript也称UnityScript,和基于浏览器的JavaScript有比较大的区别,JavaScript是一种由Netscape公司的LiveScript发展而来的原型化继承的面向对象类语言,并且是一种区分大小写的客户端脚本语言。
3.1.1 变量
JavaScript有4种变量:
(1)数值变量。数值是最基本的数据类型。例如:
var a=1000; var b=3.1415926;
(2)字符串变量。是由单引号或者双引号括起来的Unicode字符序列。
(3)布尔值。只有两个值:true和false,用来表示某个事物为真还是为假。
(4)数组。是数据的集合,数组中的每一个数据元素都有一个编号(下标),数组的下标是从0开始的。
3.1.2 表达式和运算符
表达式是关键字、变量、常量和运算符的组合,可以用于执行运算、处理字符或测试数据。JavaScript的解释引擎可以计算表达式,并返回一个结果值。JavaScript的运算符分为以下6类。
(1)算术运算符。指的是数学中最基本的加减乘除等运算。算术运算符需要两个操作数,因此也称二元运算符。假设有操作数a、b,它们的算术运算符如表3.1所示。
表3.1 算术运算符
(2)相等运算符。用来比较两个值,根据比较结果返回一个布尔值,广义的相等运算符包含以下4种:
- 相等运算符(==)。
- 等同运算符(===)。
- 不等运算符(!=)。
- 不等同运算符(!===)。
(3)关系运算符。用来测试两个值之间的关系,如果指定关系成立,则返回true,否则返回false。常见关系运算符如表3.2所示。
表3.2 关系运算符
(4)赋值运算符。可以将运算符右边操作数的值赋给左边的操作数,它要求左边的操作数为变量、数组的元素或者对象的属性,而右边的操作数可以为任意类型的值。
变量=操作数
该简单赋值表达式的结果是把操作数赋值给变量。
例如,去书店买书,针对一本书的书名,可以定义变量bookName,如果这本书叫《Unity游戏开发》,此时变量bookName指的就是“Unity游戏开发”,具体代码如下:
string bookName; bookName="Unity游戏开发";
(5)逻辑运算符。通常用来针对布尔值的操作,主要包含以下3种:
- 逻辑与(&&)运算符。
- 逻辑或(||)运算符。
- 逻辑非(!)运算符。
(6)其他运算符。除了上面介绍的运算符外,JavaScript还有一些其他的运算符,如按位运算符、条件运算符、typeof运算符、new运算符、delete运算符、void运算符等。
3.1.3 语句
JavaScript程序是由若干语句组成的,语句是编写程序的指令。JavaScript提供了完整的基本编程语句,它们是赋值语句、switch选择语句、while循环语句、for循环语句、do…while循环语句、break循环体结束语句、continue本次循环结束语句、if语句(if…else,if…else if…)等。这些语句可以分为以下几大类:
(1)变量声明及赋值语句:var。
语法如下:
var变量名称[=初始值]
例如:
var computer=32 //定义computer为一个变量, 且初值为32
(2)函数定义语句:function,return。
语法如下:
function函数名称(函数所带的参数) { 函数执行部分 }
(3)条件和分支语句:if…else,switch。
条件语句if…else完成程序流程块中分支功能:如果其中的条件成立,则程序执行紧接着条件的语句或语句块;否则程序执行else中的语句或语句块。其流程图如图3.1所示。
图3.1 条件语句
语法如下:
if(条件) { 执行语句1 } else{ 执行语句2 }
分支语句switch可以根据一个变量的不同取值采取不同的处理方法。如果表达式取的值同程序中提供的任何一条语句都不匹配,将执行default中的语句,如图3.2所示。
图3.2 分支语句
语法如下:
(4)循环语句:for,for…in,while,break,continue。
for语句的语法如下:
for(初始化部分;条件部分;更新部分) { 执行部分 }
只要循环的条件成立,循环体就被反复执行。
while语句所控制的循环不断地测试条件,如果条件始终成立,则一直循环,直到条件不再成立。
语法如下:
while(条件) { 执行语句 }
break语句结束循环,并执行循环体的下一条语句。
continue语句结束本次循环,并马上开始下一次循环。
(5)注释语句://,/*…*/。
//这是单行注释 /*这可以是多行注释*/
3.1.4 函数
函数(function)是一个可执行的程序段。函数被定义后,可以多次被程序调用。函数是命名的程序段,这个程序段可以被当作一个整体引用和执行。使用函数时要注意以下几点:
(1)函数由关键字function定义(也可由Function构造函数构造)。
(2)使用function关键字定义的函数在一个作用域内是可以在任意处调用的。
(3)函数名是调用函数时引用的名称,它是大小写敏感的,调用函数时要注意这一点。
(4)return语句用于返回表达式的值。