javascript中的基本数据类型
1. 数值类型
直接量的表示:16进行制:以0x打头,8进制以0打头。
转换为字符串:调用toString(base)方法,base表示进制,比较toString(2)表示以二进制方式表示数值。
特殊的数值:
Infinity:表示无穷大的特殊值
NaN: 非数值
Number.MAX_VALUE:可表示的最大值
Number.MIN_VALUE:可表示的最大值
Number.NaN:非数值
Number.POSITIVE_INFINITY:正无穷大
Number.NEGATIVE_INFINITY:负无穷大
可以使用+,-,*,/号对数值进行运算,也可以使用Math对象中预定义的方法进行计算。
2. 字符串类型(string)
使用+号对字符串进行连接。
字符串具有一些预定义的方法来对它进行操作,例如:求长度,转换大小写,求子串等。
3. 布尔值(boolean)
这种类型仅有true,false两种字面量,用于代表真或者假。和数值进行转换时true=1,false=0
4. 函数(function)
定义方式
a. function sample(param){} ,这是一种常规的定义方式
b. var sample = function(param){},这是匿名函数定义方式,此时的function作为一个函数直接量使用。
c. var sample=new Function("param","function body");
函数的属性:
length:表示函数定义时的参数的个数。
argumenst:表示函数调用时的实际参数,可以使用argument[n]的形式获得第n个参数,实际调用时的参数个数可以通过argument.length属性获得。
函数的方法:
call():表示对一个函数的调用,它的第一个参数是调用此函数的函数对象,例如有函数f(x,y),则f.call(q,x,y)就相当于
q.m=f; q.m(1,2);这也是Javascript中实现类的基本方式。
apply()方法:和call方法基本类似,但调用的形式为f.apply(0,argumens[])。即它的所有参数是以数组的形式传递的。
作为构造函数:
一个函数作为构造函数时具有以下特点:
1. 它由new运算符调用
2. new运算符传递给函数一个空的对象,这个对象应当使用this关键字来引用。
下面是一个定义Rectangle类的例子:
2 {
3 this.width = w;
4 this.height = h;
5 }
6
7 //r是一个新对象,它具有width属性和height属性
8 v r = new Rectangle(10,20);
9
注意Rectangle仅仅初始化了this对象,而不是返回(return)一个新的对象。
5. 对象(object)
对象类型是一组命名数据的集合。例如
var a = new Object() //注意Object首字母大写
a. x=10;
a.y = 20;
这时x和y作为a的属性出现。
a.sayHello=function(name){alert(name);}
这时sayHello成了a的一个方法。
也可以使用关联数组的方式访问对象属性,比如a["x"]==10将返回true.
对象直接量,即json语法,可以直接定义一个对象,例如如下代码:
var a={x:10,y:20,sayHello:function(name){}};
对象直接量还可以嵌套。
6. 数组(array)
数组也是一组数据的集合,但和对象不同的时,这些数据不是命名的,要引用它们时应当使用array[index]方式。数组中存放的数据不需要有相同的数据类型。
和对象一样,数组也有直接量表示方法:
var a =[10,'array'],true,{x:1,y:2}];
以上代码使a成为一个数组,它有四个元素,其中第四个元素是一个无名对象。也可以使用以下方式生成数组
var a = new Array(10);
以上代码使a成为一个数组,它有10个元素,每个元素都是空(null)的。但是请注意,如下代码:
var a = new Array(10,20);
此时a成为一个有两个元素的数组,分别是10和20.
7. null
用于表示一个变量值是无效的。
8. undefined
如果一个变量已经声明但时没有赋值,则它的值就是undefined,以表示变量没有初始化。注意:在作相等比较null==undefined时返回true。可以使用如下代码对变量是否为undefined进行检测:
var a;
a == undefined; //返回true;
9. Date对象
Date类型表示一个时间类型。
var now = new Date(); now中存放当前的时间和日期
var now = new Date(2000,11,25); now=2005/11/25