数组 Array
定义
1 | var arr1 = ["周一", "周二", "周三"]; |
2 | var arr2 = new Array("2019年", "2020年", "2021年"); |
属性
Array 具有 length 属性,即可获取也可设置。
1 | // 获取数据长度 |
2 | var arrayLength = arr.length; |
3 | // 设置数组长度(超出数组长度的元素将被抛弃) |
4 | arr.length = 2; |
方法
pop();// 取出并删除数组最后一个元素push(element);// 在数组末尾追加元素shifit();// 取出并删除数组第一个元素unshift(element);// 在数组开头添加元素indexOf(element);// 查找元素的第一个位置lastIndexOf(element);// 查找元素的最后一个位置splice(start, length, [e1, ...]);// 从start位置开始删除length个元素,并插入后面的参数元素(相当于替换)
1var arr1 = [2, 4, 6];2arr1.splice(1, 2, 1, 3, 5);3console.log(arr1); // 输出 '[2, 1, 3, 5]'join(char);// 数组元素以字符相连接,并返回字符串sort([fn]);// 默认把元素看做字符串自然排序,也可传入函数自定义排序1var arr2 = [3, 5, 2, 9];2arr2.sort(function(n1, n2) {3return n1 - n2; // 前者大于后者,升序排列4});5console.log(arr2); // 输出 '[2, 3, 5, 9]'
遍历
1 | var arr = ['冰箱', '电视', '手机']; |
2 | // 第1种遍历 |
3 | for (var i=0; i<arr.length; i++) { |
4 | console.log(i, arr[i]); |
5 | } |
6 | |
7 | // 第2种遍历 |
8 | arr.forEach(function(item, index, array){ |
9 | console.log(index, item); |
10 | }) |
扩展
- 查询元素在数组中的位置
对象 Object
函数 function
一个函数应该只返回一种类型的值。
函数中有一个默认的数组变量arguments,存储着传入函数的所有参数。为了使用函数参数方便,建议给参数起个名字。
1 | function fun1(obj, name, value){ |
2 | console.log(arguments); |
3 | console.log(obj); |
4 | console.log(name); |
5 | console.log(value); |
6 | } |
7 | fun1({'id':12}, 'username', '张三'); |
日期 Date
定义
1 | var date1 = new Date(); |
2 | var date2 = new Date(timestamp); // timestamp 毫秒单位的时间戳 |
3 | var date3 = new Date(year, month-1, dayOfMonth, hour, minute, second); |
方法
getFullYear();//获取年份getMonth();//获取月份,月份从0开始,即0表示1月,1表示2月,以此类推getDate();//获取当前月份的第几日getHours();//时getMinutes();//分getSeconds();//秒getTime();// 毫米级时间戳
扩展
1 | /** |
2 | * 扩展Date对象的功能 |
3 | * @param format |
4 | * @returns |
5 | * @example (new Date()).format('yyyy-MM-dd hh:mm:ss') 结果是 2018-08-13 08:42:34 这样的格式 ; |
6 | */ |
7 | Date.prototype.format = function (format) { |
8 | var o = { |
9 | "M+": this.getMonth() + 1, // month |
10 | "d+": this.getDate(), // day |
11 | "h+": this.getHours(), // hour |
12 | "m+": this.getMinutes(), // minute |
13 | "s+": this.getSeconds(), // second |
14 | "q+": Math.floor((this.getMonth() + 3) / 3), // quarter |
15 | "S": this.getMilliseconds() |
16 | // millisecond |
17 | } |
18 | if (/(y+)/.test(format)) { |
19 | format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); |
20 | } |
21 | for (var k in o) { |
22 | if (new RegExp("(" + k + ")").test(format)) { |
23 | format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); |
24 | } |
25 | } |
26 | return format; |
27 | } |
28 | |
29 | /** |
30 | * 扩展Date对象的功能 |
31 | * 获取上一个月日期对象 |
32 | * @param date |
33 | * @returns {Date} |
34 | */ |
35 | Date.prototype.getPreMonth = function() { |
36 | var year = this.getFullYear(); |
37 | var month = this.getMonth()+1; |
38 | var day = this.getDate(); |
39 | var hour = this.getHours(); |
40 | var minute = this.getMinutes(); |
41 | var second = this.getSeconds(); |
42 | |
43 | var y = year; |
44 | var m = parseInt(month) - 1; |
45 | if (m == 0) { // 如果是一月 |
46 | y = parseInt(y) - 1; |
47 | m = 12; |
48 | } |
49 | |
50 | var monthDays = new Date(y, m, 0).getDate(); //获取 m 月的天数 |
51 | var d = day; |
52 | if (d > monthDays) { |
53 | d = monthDays; |
54 | } |
55 | return new Date(y, m-1, d, hour, minute, second); |
56 | } |
57 | |
58 | |
59 | /** |
60 | * 扩展Date对象的功能 |
61 | * 获取下一个月的日期 |
62 | * @param date |
63 | * @returns {Date} |
64 | */ |
65 | Date.prototype.getNextMonth = function(){ |
66 | var year = date.getFullYear(); |
67 | var month = date.getMonth()+1; |
68 | var day = date.getDate(); |
69 | var hour = date.getHours(); |
70 | var minute = date.getMinutes(); |
71 | var second = date.getSeconds(); |
72 | |
73 | var y = year; |
74 | var m = parseInt(month) + 1; |
75 | if (m == 13) { |
76 | y = parseInt(y) + 1; |
77 | m = 1; |
78 | } |
79 | |
80 | var d = day; |
81 | var monthDays = new Date(y, m, 0).getDate(); // 获取 m 月的天数 |
82 | if (d > monthDays) { |
83 | d = monthDays; |
84 | } |
85 | return new Date(y, m-1, d, hour, minute, second); |
86 | } |