Web开发初探之JavaScript 快速入门 (3)

运算符 是一类数学符号,可以根据两个值(或变量)产生结果。以下表格中介绍了一些最简单的运算符,可以在浏览器控制台里尝试一下后面的示例。

译注:这里说“根据两个值(或变量)产生结果”是不严谨的,计算两个变量的运算符称为“二元运算符”,还有一元运算符和三元运算符,下表中的“取非”就是一元运算符。

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

运算符种类远不止这些,不过目前上表已经够用了。完整列表请参阅 。

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

= 是赋值运算符,a = 12 表示把 “12” 赋值给变量 a。

如果你需要比较两个值,可以使用 ==,例如 a == 12。

JavaScript 中还有个独特的 === 运算符,它能够比较两边的值和类型是否全都相同。(类型是指 string, number 这些):

a = "12"; a == 12; // true a === 12; // false

大多数情况下,我们都推荐使用 === 运算符来比较两个值,因为希望比较两个不同类型但有着相同值的情况是比较少见的。

下面是 JavaScript 判断两个值是否不相等的比较运算符:

a = 12; a !== 11; // true

! 运算符还可以单独使用,用来对一个 boolean 值取反:

a = true; !a; // false

! 运算符总会得到一个 boolean 类型的值,所以可以用来将非 boolean 类型的值转为 boolean 类型:

a = 12; !a; // false !!a; // true

或者:

a = 0; !a; // true !!a; // false 代码风格

最后,下面这些代码风格上的规则能帮助我们写出更清晰明确的代码:

使用驼峰命名法:定义 myRandomVariable 这样的变量名,而不是 my_random_variable

在每一行结束时写一个 ;,尽管在 JavaScript 里行尾的 ; 是可以忽略的

在每个关键字前后都加上空格,如 a = b + 1,而不是 a = b + 1

组合我们学到的知识

以上基础的 JavaScript 语法知识已经介绍完了,下面我们来看看能否理解实际的脚本代码:

var Comp = cc.Class({ extends: cc.Component, properties: { target: { default: null, type: cc.Entity } }, onStart: function () { this.target = cc.Entity.find(\'/Main Player/Bip/Head\'); }, update: function () { this.transform.worldPosition = this.target.transform.worldPosition; } });

这段代码向引擎定义了一个新组件,这个组件具有一个 target 参数,在运行时会初始化为指定的对象,并且在运行的过程中每一帧都将自己设置成和 target 相同的坐标。

让我们分别看下每一句的作用(我会高亮有用的语法模式):

var Comp = cc.Class({:这里我们使用 cc 这个对象,通过 点语法 来调用对象的 Class() 方法(该方法是 cc 对象的一个属性),调用时传递的参数是一个匿名的 JavaScript 对象({})。

target: { default: null, type: cc.Entity }:这个键值对声明了一个名为 target 的属性,值是另一个 JavaScript 匿名对象。这个对象定义了 target 的默认值和值类型。

extends: cc.Component:这个键值对声明这个 Class 的父类是 cc.Component。cc.Component 是 Cocos Creator 的内置类型。

onStart: function () {:这一对键值定义了一个成员方法,叫做 onStart,它的值是一个匿名函数。

this.target = cc.Entity.find(\':在这一句的上下文中,this 表示正在被创建的 Component 组件,这里通过 this.target 来访问 target 属性。

继续学习

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzxzd.html