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()); ??// ??输出 ?You3 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 (中国标准时间)
JS数据类型
原文地址:http://www.cnblogs.com/jiangshichao/p/7536074.html