js基础知识

标识符

一.组成:”_”,”$”,数字(但不能以数字为首)
二.字符编码:Unichode,又叫统一编码制,是国际上通用的16位编码制

常量

一.定义:const 常量名
二.特点:只能在初始化时赋值,其他时候不能

注释

多行(块)注释:有其他语言没有的特点—–可嵌套注释

数据类型

A.数值类型:包含整数,浮点数;
(1)整数:二进制,十进制,八进制(0为首),十六进制(0x为首)
(2)浮点数:必须是数字+小数点(或者e)
<二进制,八进制,0均为数字>
B.布尔类型:true,false

C.字符串类型:””或’’均可

D.数组类型

E.对象类型

数据类型字面量:即常值
类型转换

A.布尔类型数值类型—->字符串:(以变量num为例)
(1)num.toString();
(2)num+””;

B.字符串转换成数值
(1)parseInt(字符串,进制),//进制可填2,10,8,16
(2)parseFloat(字符串)

Ps:NaN为无效数值

C.强制类型转换
(1)Number(value);
(2)Boolean(value);
(3)String(num);

Ps:null表示值为空,undefined表示未声明的变量,或者已声明未赋值的变量,或者不存在的对象

运算符:

A.关系运算符
“===”严格等于,即必须类型相同,而”==”存在智能转换类型并比较

B.逻辑运算符
“>>>”无符号右移,“<<”左移,空位用0补
“>>”右移,空位用符号位补

C.其他运算符

引用运算符:.(引用属性,方法等)

下标运算符:[]

类型判断运算符:instanceof

内存分配运算符:new

ps:
&&:短路与
<<直接在后面加0

控制语句

A.分支语句(又称条件语句):if-else条件语句,switch多分支语句

B.循环语句:while,do-while,for
(1)空循环:for(;;)
(2)遍历循环数组 或集合对象:for(var item in 数组/集合对象)

C.跳转语句:(程序转移):return,break,continue
(1)带标签的break,continue:break/continue label;
Eg:

outer : for(var i=0;i<10;i++)
       for(var j=0;i<10;j++){
          If(arr[i][j]==0)
  continue outer;
}
面向对象

一.特点
(1)js可创建对象,但不能定义类
(2)在面向对象中,方法要有主体,而函数没有
二.创建对象
A.使用字面量:
(1)对象字面量:类型JSON(javaScript object notation—-一种轻量级数据交换格式)
(2)特点:无序的“名称,值”对集合
(3)举例

var HelloWorldLayer = cc.Layer.extend({
    sprite:null,
    ctor:function () {
        this._super();
    }
});

B. Object.create()函数复制对象:Object.create(对象)
C. 构造函数

Student=function(num){
    this.num=num;
}
cc.log(new Student(3612));//创建一个编号为3612的学生,并输出这个对象

输出一个Student对象
三.对象的方法
description(),返回对当前对象的描述字符串

常用内置对象

Object:所有对象的继承源

var obj=new Object();
cc.log(obj.toString());
cc.log(obj.constructor);
cc.log(obj.valueOf());

Object显示结果
输出依次为
描述对象的字符串
调用constructor属性,返回对象的构造函数
对象的值
Math
属性

Math.Pi;//圆周率常量
Math.SQRT;//2的平方根

方法

Math.min(num1,num2....);
Math.max(num1,num2...);
Math.random()//0~1之间的小数,其中不包括1
Math.pow(num,power);//num的power次幂
Math.sqrt(num);//平方根    
Math.ceil();//向上取整
Math.floor();// 向下取整
Math.round();// 四舍五入

Date

var date=new Date('2016 7 25');
cc.log(new Date());
cc.log(date.toString());
cc.log(date.getYear());//年+1900才是习惯表示法
cc.log(date.getMonth());//月+1才是习惯表示法
cc.log(date.getDay());//0代表星期天

Date显示结果
若Chrome出现了以下问题,建议将更新至v50以上版本(包括v50)
Chrome中文乱码
若不能通过软件管家等更新,可按以下步骤
更新Chrome
Ps:(其他中文乱码问题
若控制台界面语言是乱码,建议使用Chrome原版(开发者控制台是英文界面)
若控制台输出文字是中文乱码,建议使用UTF-8编码
若在JS函数中,建议使用encodeURIComponent或decodeURIComponent进行编码和解码。

Cocos2d-js的js继承

一.背景:js没有提供类,没有其他语言的类继承制
二.继承:每个js对象都有一个继承原型,可通过prototype属性获得
三.弊端:cocos2d-js早期版本cocos-html中几乎全部api都是模仿cocos2d-x api设计的,而cocos2d-x是C++编写,所以对象,函数比较复杂
四.设计:John Resiq的js继承方法灵感来自于原型继承机制,其具有java等面向对象一样的类概念
五.Class类:根类

Js格式建议

命名

变量
(1)功能+类型 eg:currentUrl,即当前组件的url地址
(2)常量名全大写,单字用“_”隔开 eg:NUM_TOTAL:10,
(3)对象命名,首字母大写 eg:HelloWorldLayer
方法:
(1)动词+首字母小写
(2)回调方法,handler结尾
(3)事件方法,on为首

注释

每个变量,方法必须有注释

位置

(1)public 方法写在 类内最下面
(2)类内常量在类内首部赋值,否则在类外部赋值
(3)非常量类变量在类内的首部赋null,类的初始化方法中明确赋值

其他

函数参数:若超4个,不如用对象(arguments—传入参数的对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值