JavaScript的标准对象

JavaScript的标准对象

[TOC]

Date

  • 在JavaScript中,Date对象用来表示日期和时间。

  • 常用api

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var now = new Date();
    now; // Wed Jun 24 2015 19:49:22 GMT+0800 (CST)
    now.getFullYear(); // 2015, 年份
    now.getMonth(); // 5, 月份,注意月份范围是0~11,5表示六月
    now.getDate(); // 24, 表示24号
    now.getDay(); // 3, 表示星期三
    now.getHours(); // 19, 24小时制
    now.getMinutes(); // 49, 分钟
    now.getSeconds(); // 22, 秒
    now.getMilliseconds(); // 875, 毫秒数
    now.getTime(); // 1435146562875, 以number形式表示的时间戳
  • 创建一个指定的时间

    1
    2
    var d = new Date(2015, 5, 19, 20, 15, 30, 123);
    //由于设计者的脑抽,所以这里的5代表6月份,月份从0开始的

正则表达式

  • js中的正则表达式

    1
    2
    var re1 = /ABC\-001/; //直接通过/正则表达式/格式创建
    var re2 = new RegExp('ABC\\-001'); //通过创建RegExp对象
  • 常用功能

    1. 切分字符串

      1
      'a b c'.split(/\s+/); // ['a', 'b', 'c']
    2. 判断是否匹配

      1
      2
      3
      4
      var re = /^\d{3}\-\d{3,8}$/;
      re.test('010-12345'); // true
      re.test('010-1234x'); // false
      re.test('010 12345'); // false
    3. 分组(即提取子串)

      1
      2
      3
      4
      ///^(\d{3})-(\d{3,8})$分别定义了两个组,可以直接从匹配的字符串中提取出区号和本地号码:
      var re = /^(\d{3})-(\d{3,8})$/;
      re.exec('010-12345'); // ['010-12345', '010', '12345']
      re.exec('010 12345'); // null
    4. 全局搜索

      通过全局标志符号说明是全局搜索。

      1
      2
      3
      var r1 = /test/g;
      // 等价于:
      var r2 = new RegExp('test', 'g');

      进行全局搜索

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      var s = 'JavaScript, VBScript, JScript and ECMAScript';
      var re=/[a-zA-Z]+Script/g;
      // 使用全局匹配:
      re.exec(s); // ['JavaScript']
      re.lastIndex; // 10
      re.exec(s); // ['VBScript']
      re.lastIndex; // 20
      re.exec(s); // ['JScript']
      re.lastIndex; // 29
      re.exec(s); // ['ECMAScript']
      re.lastIndex; // 44
      re.exec(s); // null,直到结束仍没有匹配到

      正则表达式还可以指定i标志,表示忽略大小写,m标志,表示执行多行匹配。

JavaScript中的json

  • 序列化为json

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    var xiaoming = {
    name: '小明',
    age: 14,
    gender: true,
    height: 1.65,
    grade: null,
    'middle-school': '\"W3C\" Middle School',
    skills: ['JavaScript', 'Java', 'Python', 'Lisp']
    };
    //普通转化
    JSON.stringify(xiaoming);
    //筛选转化,第二个参数代表输出指定的属性
    JSON.stringify(xiaoming, ['name', 'skills'], ' ');
    //通过函数预处理转化
    function convert(key, value) {
    if (typeof value === 'string') {
    return value.toUpperCase();
    }
    return value;
    }
    JSON.stringify(xiaoming, convert, ' ');
  • 反序列化为对象

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //普通转化
    JSON.parse('{"name":"小明","age":14}'); // Object {name: '小明', age: 14}
    //加强转化
    JSON.parse('{"name":"小明","age":14}', function (key, value) {
    // 把number * 2:
    if (key === 'name') {
    return value + '同学';
    }
    return value;
    }); // Object {name: '小明同学', age: 14}