一、数据类型
在js只有五种数据类型,null, undefined, String, Number,Object
undefined:未定义,我们也可称之为不存在,typeof(undefined)=undefined.
null:为空。undefined是不存在,而null是存在,但却无。typeof(null)=object,但null又不是object,且undefined==null
boolean:true or false。
Number: 数字如:var s= new Number(20); alert(s.toString(2)); //10100 接收时不是用Number a = new Number(20),而是用var 这样s就是一个Number类型,其属性有:MAX_VALUE 可表示的最大的数。MIN_VALUE 可表示的最小的数。 NaN 非数字值。NEGATIVE_INFINITY 负无穷大,溢出时返回该值。POSITIVE_INFINITY 正无穷大,溢出时返回该值。 方法有:toString 可以接受一个从2到36的数字,然后把我们的Number转换为相应的进制数。
注:NaN和Infinity是两个特殊之数,NaN代表一个无法用数值来表示的数字,而Infinity代表一个无穷大的数字,相对的,-Infinify则代表负无穷大。在此有两点特殊的地方:NaN!=NaN,Infinity/Infinity=NaN。
String:字符串,Javascript中没有字符的概念,字符串是表示文本的最小单位。在字符串中,有这样的两个函数,分别是charAt(index)和charCodeAt(index)分别返回对应索引的字符和字符Unicode编码。在我们平时,可能经常会使用下标的方式访问,如s[10],可是这并不是ECMAScript的标准,应该尽量避免。
二,js建立类对象
1,成员变量权限分为私有与公有。私有指用var建立的成员 ,公有指用this建立的对象
var obj = function () { var a = 1; this.b = 2; this.c = 5; this.fun = function () { this.c = a+this.b; }};
var o = new obj(); o.fun(); alert(o.b); //2 alert(o.a); //不可访问结果为undefined
2,为类动态增加变量,函数—prototype
var obj = function () { this.c = 5;};
var o = new obj(); alert(o.c); //5
obj.prototype.tt = -3 obj.prototype.setValue = function(){ this.c = -1; } //可直接操作类成员
o.setValue(); //设置后直接调用
alert(o.c);
alert(o.tt);
利用prototype有个好处,定义的东西多个实例也是共用一个。不然直接定义方法,则每一个实例的方法是不一样的,存在不同的地址中