JS数据类型

Posted 铸剑师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS数据类型相关的知识,希望对你有一定的参考价值。

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 (中国标准时间)

 

以上是关于JS数据类型的主要内容,如果未能解决你的问题,请参考以下文章

Relay.js 没有正确解析组合片段

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

js代码片段: utils/lcoalStorage/cookie

JS代码片段:一个日期离现在多久了