javascript的基本类型有:null、defined、number、string、object、boolen。function被看做是object基本数据类型的一种特殊对象
一、引用类型
1、Array
在javascript中Array是引用类型,js中数组是最强大的数据结构
它有一些方法:
(1)栈方法和队列方法
push()、pop()、shift()、unshift()
(2)排序方法
sort()、reverse()
reverse的作用是反转数据的数据
sort默认排序是升序,它的原理是调用每一个数组项的字符串toString(),然后比较得到的字符串来排序。
var arr=[1,10,5,15]; arr.sort(); alert(arr); //1,10,15,5所以sort排序的情况下,很多时候并不是我们想要的。因此,sort可以接受一个函数类型的参数,以便我们比较哪个值在前面。
function compare(value1,value2){ if(value1<value2){ return -1; } else if(value1>value2){ return 1; } else{ return 0; } } var arr=[0,1,5,15,10]; arr.sort(); alert(arr); //0,1,5,10,15(3)操作方法
concat()、slice()、splice()
concat()链接一个或者多个数组
var arr=["111","222"] var temp=arr.concat("yellow",["green","blue"]);//111,222,yellow,green,blueslice()接受一个或者两个参数,分别表示所取数组的起始位置和终止位置。如果是一个参数,取指定位置到数组结束的所有项。如果两个参数,取起始和终止位置的所有项(不包括终止位置的那一项)。
2、Date类型
在调用Date构造函数不传递参数的时候,新创建的对象自动获取当前日期和事件,如果想根据特定的时间创建日期对象,必须传入日期时间的毫秒数。为了简化这一过程,js提供了两个函数Data.parse()和Date.UTC()。
Data.parse()和Date.UTC()都是返回时间的毫秒数。Date.UTC()参数分别是年份,基于0的月份(1月是0,二月是1),月中的哪一天,小时数,分钟,秒及毫秒数;前面的年份和月份是必须的。Date的valueOf返回时间的毫秒数。
比如要创建2013年1月15号的时间:
var t1=new Date(Date.parse("1/15/2013 13:30:45"));//里面的格式是:月/日/年 var t2=new Date("1/15/2013 13:30:45"); var t3=new Date(Date.UTC(2013,0,15,13,30,45)); var t4=new Date(2013,0,15,13,30,45); alert(t1);//Tue Jan 15 2013 13:30:45 GMT+0800 (中国标准时间) alert(t2);//Tue Jan 15 2013 13:30:45 GMT+0800 (中国标准时间) alert(t3);//Tue Jan 15 2013 21:30:45 GMT+0800 (中国标准时间) alert(t4);//Tue Jan 15 2013 13:30:45 GMT+0800 (中国标准时间) alert(t1.toLocaleString());//2013年1月15日 下午1:30:45 alert(t2.toLocaleString());//2013年1月15日 下午1:30:45 alert(t3.toLocaleString());//2013年1月15日 下午9:30:45 alert(t4.toLocaleString());//2013年1月15日 下午1:30:45
3、正则类型RegExp
var reg1=/[bc]ac/i; var reg2=new RegExp("[bc]ac","i");//reg1和reg2是等价的 var text="mon and dad and baby"; reg1.exec(text); reg2.exec(text);
4、function函数
(1)函数的属性和方法
每个函数都包括两个属性:length和prototype。length表示函数愿意接受参数的个数。
每个函数都包含两个非继承而来的方法:apply()和call()。apply接受两个参数,一个是函数的作用域,一个是参数的数组,而数组可以是arguments对象。call方法和apply作用相同,只是接受参数方式不同,对于call的参数,第一个是作用域,其余的参数都是传递过来的参数。
function sum(n1,n2){ alert(n1+n2); } function sum2(n1,n2){ sum.apply(this,arguments); //或者 //sum.apply(this,[n1,n2]); //sum.call(this,n1,n2); }实际上call和apply的作用是定义函数作用域
二、值类型
1、string类型var s1="some text"; var s2=s1.substring(2);
按照逻辑基本类型值不是对象,不应该有方法函数,那么上面那段代码是如何执行的?
在第二行代码访问s1的时候,访问过程处于一种读取模式,会从内存中读取这个字符串的值,在这个过程中后台会执行如下过程:
1、创建string类型的一个实例
2、在实例上调用指定的方法
3、销毁这个实例
上面这三部也适用于boolen、number类型对应的布尔值和数字值
2、boolen类型
布尔表达是中的所有对象都会返回true
var falseObject = new Boolen(false);//true3、number类型
var num = 10; num.toString(2);//1010 num.toString();//10 num.toFixed(2);//10.00 num.toExponential(1);//1.0e+1 var num = 10.005; num.toFixed(2);//10.01三、常用对象