js数据类型分类
基本数据类型 : Number,String,Boolean,Undefined,Null
复杂数据类型 : Object,Array,Function,RegExp,Date,Error
全局数据类型 :Math
我们可以用typeof去判断一个变量的类型
但是通常只会返回6种状态,分别为:
undefined 未初始化
boolean
string
number
object 对象或者Null
function 函数
如果想具体判断是object哪种类型,则使用
Object.prototype.toString.call();
Array对象
1、array的创建
1 var arr = new Array();
2 arr[0] = 0;
3 arr[1] = 1;
4
5
6 var arr = new Array("BMW","volvo");
7
8
9 var arr = new Array(10);
常用的方法 :
concat() 连接两个或者更多数组,并返回结果
filter() 返回符合条件的所有元素数组
find() 返回符合传入测试(函数)条件的数组元素(第一个)
indexof() 返回数组元素的位置
join() 把数组所有元素放入一个字符串
map() 通过函数处理每个元素并返回处理后的数组
pop() 删除数组最后一个元素并返回删除元素
push() 向数组末尾添加元素
reduce() 将数组元素计算为一个值(从左往右) reduceRight()
reverse() 反转元素顺序
sort() 排序
例如 filter()就可以对数组进行筛选
1 var ages = [32,33,16,46];
2 function filterAges(age){
3 return ages>=18;
4 }
5
6 ages.filter(filterAges);//[32,33,46]
例如利用join()就能进行拼接 ()里是指定的拼接分隔符
1 var arr = ["I","Love","You"];
2 alert(arr.join("_")); // 输出I_Love_You
例如你需要动态的删除数组的最后一个元素,那么就可以使用pop()
1 var arr = ["I","Love","You"];
2 alert(arr.pop()); // 输出 You
3 alert(arr); // 输出[I,Love]
又例如求一个数组的和可以使用reduce()方法,而且计算速度比循环之类的快的多
1 var arr = [1,2,3];
2 alert(arr.reduce(function (p1, p2, p3, p4) {
3 return p1 =p2;
4 })); //输出6
5
6 //如果想给个初始值的话,可以
7 var arr = [1,2,3];
8 alert(arr.reduce(function (p1, p2, p3, p4) {
9 return p1 =p2;
10 },5)); //输出11,在5的基础上开始相加
或者还有个办法
1 var arr = [1,2,3];
2 alert(eval(arr.join(" "))); //输出6
Date对象
var date = new Data(); //获取当前时间 Sun Sep 17 2017 15:16:05 GMT 0800
如果在你服务器上运行取得就是你服务上的时间
1 var date = new Date();
2 console.log(date);
3 //获取当前日期(1~31)
4 console.log(date.getDate());
5 //获取星期几 (0~6)
6 console.log(date.getDay());
7 //获取月份 (0~11)
8 console.log(date.getMonth());
9 //获取年份
10 console.log(date.getFullYear());
11 //获取时 (0~23)
12 console.log(date.getHours());
13 //获取分 (0~59)
14 console.log(date.getMinutes());
15 //获取秒 (0~59)
16 console.log(date.getSeconds());
结果
如果在每个方法前面 UTC,那么就可以获取UTC时间
如果把get换成set,那么就可以设置对应的时间
还有几个方法也比较实用
1 //获取1970年1月1日到指定时间的毫秒数(加上时区)
2 console.log(date.getTime());
3 //将时间转成string类型
4 console.log(date.toString());
5 //将时间转成本地string类型
6 console.log(date.toLocaleString());
7 //将时间转成UTCstring类型
8 console.log(date.toUTCString());
结果
getTime 可以用来计算时间差
那么,怎么自己构造一个Date类型的时间呢
1、把毫秒数转换成Date
1 var date = new Date(1000*60*1);
2 console.log(date); //Thu Jan 01 1970 08:01:00 GMT 0800 (中国标准时间)
2、把字符串转话成Date对象 主要有2种格式
yyyy/MM/dd HH:mm:ss 推荐,可以省略时间,省略返回00:00:00
yyyy-MM-dd HH:mm:ss 省略时间返回08:00:00 ;如果不省略,在IE中会转化失败
1 var date = new Date("1993/07/08 11:11:11");
2 console.log(date); //Thu Jul 08 1993 11:11:11 GMT 0800 (中国标准时间)
3
4 var date = new Date("1993/07/08");
5 console.log(date); //Thu Jul 08 1993 00:00:00 GMT 0800 (中国标准时间)
6
7 var date = new Date("1993-07-08 11:11:11");
8 console.log(date); //Thu Jul 08 1993 11:11:11 GMT 0800 (中国标准时间)
9
10 var date = new Date("1993-07-08");
11 console.log(date); //Thu Jul 08 1993 08:00:00 GMT 0800 (中国标准时间)
如果不省略时间在IE中无法转化
3、new Date(year,month,opt_day,opt_hours,opt_minutes,opt_seconds,opt_milliseconds) 带opt的是可以省略的
year(int) 4位数
month(int) 2位数 0~11
opt_day(int) 2位数 0~23
opt_hours(int) 2位数 0~59
opt_minutes(int) 2位数 0~59
opt_seconds(int) 2位数 0~59
opt_milliseconds(int) 0~999
1 var date = new Date(1993,7,8);
2 console.log(date); //Sun Aug 08 1993 00:00:00 GMT 0800 (中国标准时间)
3
4 var date = new Date(1993,7,8,12);
5 console.log(date); //Sun Aug 08 1993 12:00:00 GMT 0800 (中国标准时间)
6
7 var date = new Date(1993,7,8,12,12);
8 console.log(date); //Sun Aug 08 1993 12:12:00 GMT 0800 (中国标准时间)
9
10 var date = new Date(1993,7,8,12,12,12);
11 console.log(date); //Sun Aug 08 1993 12:12:12 GMT 0800 (中国标准时间)
12
13 var date = new Date(1993,7,8,12,12,12,12);
14 console.log(date); //Sun Aug 08 1993 12:12:12 GMT 0800 (中国标准时间)