JS学习笔记——Date、Array

1.Date

返回object:new Date()
返回number:Date.parse("2017.4.19")Date.UTC(2017,0)Date.now()

var now = new Date();//获取当前时间,变量now是object
var before = new Date(1000);//获取距离UTC 1000毫秒的时间,变量before是object

//变量now是该时间距离UTC的毫秒数,参数是字符串
//格式有许多可选,"2017.4.19"、"4/19/2017"等格式都可以
var now = Date.parse("April 19, 2017");

var now = Date.UTC(2017,3,19,21,24,26)//变量now是该时间距离UTC的毫秒数,该时间指2017.4.19 22:24:26

var now = Date.now();//变量now是目前时间距离UTC的毫秒数

2.Array

//检测数组
//isArray()方法检测变量是否是数组
var arr = [];
Array.isArray(arr);//true

//转换成字符串
//join()方法将数组连接成字符串,返回字符串,原数组不变
var arr = [1,2,'x'];
var str = arr.join('-');//返回字符串"1-2-x"

//栈方法,先进后出
var arr = new Array();
arr.push('a','b');
arr.push('c');
arr.pop();//c,返回最后一个进去的元素

//队方法,先进先出
var arr = new Array();
arr.push('a','b');
arr.push('c');
arr.pop();//a,返回第一个进去的元素

//重排序方法,这两个函数的返回值都是重排序之后的数组,原数组不变
//reverse()方法不看内容,倒序排列;sort()方法按照传入的函数排列
var arr = [12,0,33,6,1];
arr.reverse();//单纯将arr从后往前排列,跟内容无关
arr.sort(func);//接受一个比较函数

//操作元素方法
//concat()方法在原数组的基础上添加元素,返回新数组,原数组不变;
//slice()方法在原数组的基础上删除元素,返回新数组,原数组不变;
//splice()方法在原数组的基础上添加和删除元素,原数组改变,返回被从原数组中删除的元素
var arr = ['a','b'];
var arr2 = arr.concat('c');//arr不变,arr2是arr的副本添加元素c之后的结果

var arr = ['a','b'];//arr不变,arr2是arr的副本经过裁剪之后的结果。裁剪的规则是[s,e)左开右闭,s和e都是数组索引
var arr2 = arr.slice(s,e);//如果索引中有负数,需要加上数组的长度变为正数进行计算

var arr = ['a','b'];
var ar2 = arr.splice(s,n,'xxx',...);//arr改变,从s位置删除n个元素并添加后面的元素;arr2由从arr中删除掉的元素组成

//位置方法
//indexOf()方法和lastIndexOf()方法查找数组并返回结果的索引
var arr = ['a','b','a'];
arr.indexOf('a',n);//从位置n向右(数组末尾)查找元素'a'
//有两点要注意:1.查找使用全等===; 2.两个引用类型的值相同,不代表引用1==引用2
arr.lastIndexOf('b',n)从位置n向左(数组开头) 

//迭代方法(都不会修改原数组中的值)
//每个迭代方法的第一个参数接受一个迭代函数,该迭代函数接收三个参数:元素的值,元素的索引,数组本身。
//参数含义跟顺序有关,跟变量名称无关。除了forEach(),其他方法都是返回值,且第一个参数的迭代函数也有返回值。
//every()判断所有元素是否满足条件,“every”每一个都满足了,才返回true;
//some()判断是否有某一个元素满足条件,“some”某一个都满足了,就返回true;
//map()把每个元素映射成其他值,返回映射后的新数组
//filter()过滤掉不满足条件的元素,返回满足条件的元,组成数组
//forEach()无返回值,相当于for循环遍历每个元素
var arr = [1,2,3,4,3,2,1];
var res = arr.every(function(item, index, array){
    return (item > 2);
});//res是false

var res = arr.some(function(item, index, array){
    return (item > 2);
});//res是true

var res = arr.filter(function(item, index, array){
    return (item > 2);
});//res是[3,4,3]

var res = arr.map(function(item, index, array){
    return (item * 2);
});//res是[1,4,6,8,6,4,1]

arr.forEach(function(item, index, array){
    array[index] = item * 2;
});//res是[1,4,6,8,6,4,1]
原文地址:https://www.cnblogs.com/season-peng/p/6759509.html