zoukankan      html  css  js  c++  java
  • 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 (中国标准时间)
  • 相关阅读:
    ASP.NET Web API是如何根据请求选择Action的?[上篇]
    Ruby的对象模型
    MongoDB学习3
    Linux目录树详细说明
    Matlab.NET混合编程技巧之——直接调用Matlab内置函数(附源码)
    [置顶] SQL注入安全分析
    3.9 聚集和联接
    Qt之QTemporaryFile(文件名唯一,且可以自动删除)
    调用Windows属性窗口(居然是通过注册表来调用的)
    QTextEdit中选中文本修改字体与颜色,全部文本修改字体与颜色(设置调色板的前景色、背景色、文字颜色以及基色)
  • 原文地址:https://www.cnblogs.com/jiangshichao/p/7536074.html
Copyright © 2011-2022 走看看