# 对象 - 数组、Date 和 Math

### 数组对象

#### 创建数组

```javascript
创建方式1:
    var arrname = [元素0, 元素1, ….];
    // var arr=[1,2,3];

创建方式2:
    var arrname = new Array(元素0, 元素1, ….);
    // var test=new Array(100,"a",true);
```

#### 数组方法

```javascript
var arr = ["A", "B", "C", "D"];
// 内置属性
console.log(arr.length);
// 获取指定下标的成员
console.log(arr[3]); // D
console.log(arr[arr.length - 1]); // 最后一个成员

// (1) pop()  出栈,删除最后一个成员作为返回值
var arr = [1, 2, 3, 4, 5];
var ret = arr.pop();
console.log(arr); // [1, 2, 3, 4]
console.log(ret); // 5


// (2) push() 入栈,给数组后面追加成员
var arr = [1, 2, 3, 4, 5];
arr.push("a");
console.log(arr); // [1, 2, 3, 4, 5, "a"]


// (3) shift是将数组的第一个元素删除
var arr = [1, 2, 3, 4, 5];
arr.shift()
console.log(arr); // [2, 3, 4, 5]

// (4) unshift是将value值插入到数组的开始
var arr = [1, 2, 3, 4, 5];
arr.unshift("bobo")
console.log(arr); // ["bobo",1,2, 3, 4, 5]


// (5) reverse() 反转排列
var arr = [1, 2, 3, 4, 5];
arr.reverse();
console.log(arr); // [5, 4, 3, 2, 1]

// (6) slice(开始下标,结束下标)  切片,开区间
var arr = [1, 2, 3, 4, 5];
console.log(arr.slice(1, 3));


// (7) concat() 把2个或者多个数组合并
var arr1 = [1, 2, 3];
var arr2 = [4, 5, 7];
var ret = arr1.concat(arr2);
console.log(ret);


// (8) join()  把数组的每一个成员按照指定的符号进行拼接成字符串
var str = "广东-深圳-南山";
var arr = str.split("-");
console.log(arr); // ["广东", "深圳", "南山"];

var arr1 = ["广东", "深圳", "南山"];
var str1 = arr1.join("-");
console.log(str1); // 广东-深圳-南山
       
```

#### 遍历数组

```javascript
var arr = [12, 23, 34]
for (var i in arr) {
    console.log(i, arr[i])
}
```

### Date 对象

#### 创建 Date 对象

```javascript
//方法1：不指定参数
var nowd1 = new Date(); //获取当前时间
console.log(nowd1);
console.log(nowd1.toLocaleString());
//方法2：参数为日期字符串
var d2 = new Date("2004/3/20 11:12");
console.log(d2.toLocaleString());
var d3 = new Date("04/03/20 11:12");
console.log(d3.toLocaleString());
```

#### 获取时间信息

```javascript
获取日期和时间
var date = new Date();
date.getDate();
     getDate()                // 获取日
     getDay()                 // 获取星期
     getMonth()               // 获取月（0-11）
     getFullYear()            // 获取完整年份
     getHours()               // 获取小时
     getMinutes()             // 获取分钟
     getSeconds()             // 获取秒
     getMilliseconds()        // 获取毫秒
```

### Math 对象

```javascript
// Math对象的内置方法
// abs(x)  返回数值的绝对值
var num = -10;
console.log(Math.abs(num)); // 10

// ceil(x)  向上取整
var num = 10.3;
console.log(Math.ceil(num)); // 11

// floor(x) 向下取整
var num = 10.3;
console.log(Math.floor(num)); // 10

// max(x,y,z,...,n)
console.log(Math.max(3, 56, 3)); // 56
// min(x,y,z,...,n)


// random()  生成0-1随机数
console.log(Math.random());

// 生成0-10之间的数值
console.log(Math.random() * 10);

// round(x) 四舍五入
// 生成0-10之间的整数
console.log(Math.round(Math.random() * 10));
```
