JavaScript对象与JSON
内置对象
Date
/*Date*/
let date = new Date();
console.log(date.getDate());//一月中的日号
console.log(date.getDay());//一周中的日号
console.log(date.getFullYear());//年份
console.log(date.getYear());//从1900年开始算的年份
console.log(date.getMonth());//月,月是从0开始计数的,即1月在存储中的值是0
- Date();获取当前日期对象,也可以传入字符串参数如“2020-1-1 12:12:12”获取指定日期对象
- 获取当前年份用getFullYear,不是getYear
- 月份在存储时从0开始,若要获得当前月份应当+1
- getDate获取一个月的几号,getDay获取周几
Array
join 分割
//join
let arr = new Array('h','e','l','l','o',' ','w','o','r','l','d');
let arr2 = new Array(6);
arr2[0]=1;
console.log(arr.join(""));
console.log(arr2.join("*"));
join将数组中的元素提取出来通过符号分割(默认以逗号分割)并以字符串形式返回,对于空出长度会以分割符填补
concat 连接
//concat
let arr = new Array('1','2','3');
console.log(arr.concat(4,5));
console.log(arr.concat([4,5]));
console.log(arr.concat([4,5],6));
console.log(arr.concat([4,[5,6]]));
- 利用concat将两个数组连接或给数组追加元素,参数可以使元素或者数组,当参数中出现数组的嵌套时,内部的数组会被看作一个元素
- 不修改原数组
every和some
//every和some
let arr = new Array(1,2,3);
let bool = arr.every(x=>{
return x===1;
})
console.log(bool);
let bool2 = arr.some(x=>{
return x===1;
})
console.log(bool2);
- every相当与数学中的全称量词,只有全部元素都满足回调函数的条件时才返回true;some相当于数学中的存在量词,当有一个元素满足条件就返回true
2.()=>{},箭头函数类似于lambda表达式
filter 过滤
//filter
let arr = new Array();
let arr2 = new Array();
for(let i=1;i<=10;i++){
arr[i-1]=i;
}
arr2 = arr.filter(x=>{
return x%2==0;
})
console.log(arr2);
数组过滤,满足返回满足条件的元素,并组成新数组
sort 排序
//sort
let arr = new Array();
for(let i=1;i<=10;i++){
arr[i-1]=i;
}
arr.sort((a,b)=>b-a);//数字倒序
console.log(arr);
arr.sort((a,b)=>a-b);//数字正序
console.log(arr);
arr.sort();//字母表顺序
console.log(arr);
- 默认按照字母表排序,也可自定义函数排序
- undifined会在序列的最后
- 改变原来的数组
splice
//split
let arr = new Array();
for(let i=1;i<=10;i++){
arr[i-1]=i;
}
arr.splice(0,6);//从索引为0出删除6个
console.log(arr);
arr[0]='a';
arr.splice('a',2);//从值为a处删除2个
console.log(arr);
arr.splice(0,0,1,2,3,4,5,6,7,8);//从索引为0处删除0个并插入元素
console.log(arr);
- splice第一个参数是删除的索引或者删除的值(当传入的第一个参数为数字时,只考虑索引,不考虑值)
- splice第二个参数时删除的元素的长度,当只执行插入操作时该参数设为0
- 第二个参数往后是将插入的值,从第一个参数指向的位置开始插入
- splice会改变原数组
- splice的返回
String
/*String*/
let str = new String();
str = "223456";
console.log(str.indexOf(2,1));//第一个参数为需要找的索引的值,第二个参数是起始点索引
console.log(str.substr(2,2));//第一个参数为提取的起点索引,第二个参数为切割的长度
console.log(str.substring(0,3));//第一个参数为提取的起点索引,第二个参数为切割的终点索引,终点不包含在内
- indexof作用是通过值来查找索引,第一个参数为待查找的值,第二个为查找起点索引,起点在查找范围内
- subst作用是提取字符串,第一个参数为提取起点索引,第二个参数为提取的字符长度,起点在提取范围内
- substring作用是提取字符串,第一个参数是提取起点索引,第二个是提取的终点索引,起点在提取范围内,终点不在提取范围内
JSON—JavaScript Object Notation
语法
属性使用双引号包含的对象
let student={
"id":1,
"name":'张三',
"age":18
}
console.log(student);
let student2='{"id":1,"name":"张三","age":19}';
console.log(JSON.parse(student2));
JSON.parse可以将符合JSON格式的字符串转化为JSON对象
for循环
for…in
//遍历数组
let arr = new Array(1,2,3);
arr[3]=4;
arr['a']='b';
for(let i in arr){
console.log(arr[i]);
}
//遍历对象
let student={
id:1,
name:'张三',
age:18
}
for (let i in student) {
console.log(i);
}
for…in遍历数组中的索引、对象中的键,不推荐用for…in遍历数组
for…of
//遍历数组
let arr = new Array(1,2,3);
arr[3]=4;
arr['a']='b';
for (let i of arr) {
console.log(i);
}
for…of遍历数组中的值,与Java中的for…in类似,但js中for…of只能遍历数组,不能遍历对象