由于我是一边学习JavaScript,一边学习cocoscreator,所以有些例子是结合游戏脚本一起的。
一.变量
Java是弱类型语言,变量不用声明也可以使用,js中用var声明变量。
var a='变量a';
在 JavaScript 中,我们像这样声明一个变量:
var a;
保留字 var 之后紧跟着的,就是一个变量名,接下来我们可以为变量赋值:
var a = 12;
在阅读其他人的 JavaScript 代码时,你也会看到下面这样的变量声明:
a = 12;
如果你在浏览器控制台中尝试,会发现 JavaScript 在面对省略 var 时的变量声明并不会报错,但在 Cocos Creator 项目脚本中,声明变量时的 var 是不能省略的,否则编译器会报错。
javaScript中数据运算有自动的类型转换:
减法:因为字符串不支持减法运算,所以在运算时会自动将字符串转换为数值
`var a=3.14;`
var b=1;
`var c=a-b;`
//c的值为2.14
加法:字符串可以进行加法运算,运算时自动将数值转换为字符串var a=3.14;var b=1;
var c=a+b//c的值为3.141
同样的,我们用var定义数组:var a =[0,1,2];
var b=new Array[ ];`JavaScript的数组长度可以任意变化,可以随意添加数组,访问数组元素不会发生越界,访问未赋值的元素时,该元素的值为underfined.
二.变量作用域
不使用var定义的是全局变量。
不在方法里定义的是全局变量。
在方法里定义并且使用var定义的是局部变量。
方法里的变量要调用了方法之后才能使用。
`function test(){
for(var i=0;i<10;i++){}
alter(i);}`
//此i出了for循环一样使用,但是i作为局部变量,只能在方法内使用.
如果局部变量和全局变量使用一样的变量名,那么局部变量会覆盖全局变量。
变量声明会被自动提升到函数的顶部先运行,但是并不代表会赋值。
三.函数
在JavaScript里这样声明函数:
var myfunction= function(my){
}
用这样来调用函数:my(do something);
我们看到函数声明也和变量声明一样遵从 var s = s 的模式。因为在 JavaScript 里,函数和变量本质上是一样的,我们可以像下面这样把一个函数当做参数传入另一个函数中:square=function(a);{
//s=100.
return a*a;}
s=function(f,a){
return f(a);}
s (square,10);
欧克,我们见识了用变量来声明函数,那么,有没有更加偷懒的方法,当然有。匿名函数就出来,为了我们偷懒,她出来了。
s = function(f,a){
return f(a);
}
s(
function(a){
return a*a;
},
)
发现少了什么,是square,没有声明square函数,只是作为一个参数传递,在参数位置直接写了一个新的函数体。这里我们就叫做匿名函数。在JavaScript里最为常用。
函数的调用:
1.直接调用
调用者.函数(参数1,参数2.。。。)
2.call
函数.call(调用者,参数1,参数2.。。。。。)
3.apply
函数.apply(调用者,[参数1,参数2.。。。。])
四.返回值
上面三的代码里的return 就是返回值,基本是c,c++,Java,js,lua都是这么用,不再多说。
五.if条件句
if(){
}else{
}
这是常用的,但是,在这里,介绍在C语言里用的三目运算符
var n=foo? 1:2;
当foo为true时 n=1,当foo为false时 n=2.
六.JavaScript的对象(Ob):
我们像这样声明一个对象(object):
myProfile = {
name: "Messi",
email: "1240086494@qq.com",
'zip code': 10,
isInvited: true
}
在对象声明的语法(myProfile = {…})之中,有一组用逗号相隔的键值对。每一对都包括一个 key(字符串类型,有时候会用双引号包裹)和一个 value(可以是任何类型:包括 string,number,boolean,变量名,数组,对象甚至是函数)。我们管这样的一对键值叫做对象的属性(property),key 是属性名,value 是属性值。
你可以在 value 中嵌套其他对象,或者由一组对象组成的数组:
myProfile = {
name: “Messi”,
email: “1240086494@qq.com”,
city: “Xiamen”,
points: 10,
isInvited: true,
friends: [
{
},
{
}
]
}
访问对象的某个属性非常简单,我们只要使用 dot 语法就可以了,还可以和数组成员的访问结合起来:
myProfile.name;
// Messi
JavaScript 中的对象无处不在,在函数的参数传递中也会大量使用,比如在 Cocos Creator 中,我们就可以像这样定义 FireClass 对象:
var MyComponent = cc.Class({
extends: cc.Component
});
{extends: cc.Component} 这就是一个用做函数参数的对象。在 JavaScript 中大多数情况我们使用对象时都不一定要为他命名,很可能会像这样直接使用。
欧克欧克,以上就是我觉得在JavaScript中最为基础的东西,当然还有像this的用法,链式语法,运算符等等,在三中我会提到。其实大多数的用法与c相近,最基础的代码格式也是类似的。