Object
创建对象let IronMan = new object();
IronMan.name = 'Tony';
IronMan.age = 53;
let IronMan = {
name:'Tony',
age:53
}
let IronMan = {};
IronMan.name = 'Tony';
IronMan.age = 29;
更多见面向对象编程。
Array
1.创建数组let superhero = new Array()
let superhero = new Array('IronMan','SpiderMan')
数组字面量:
let superhero = ['IronMan','SpiderMan']
let superhero = []
静态方法:
Array.from():第一个参数是类数组对象,*第二个关键字映射函数参数
console.log(Array.from('Tony')) //['T','o','n','y']
Array.of():把参数转化为数组
2.数组空位
const options = [1,,,4]
长度为4,空位为存在的元素,值为undefinded
3.数组索引
let number = [1,2,3,4,5];
alert (number[0]); //1
number[1] = 6; //[1,6,3,4,5]
number[5] = 7; //[1,6,3,4,5,7]
number.length == 6; // true
number[number.length] = 8; //[1,6,3,4,5,7,8]
length属性不是只读属性,可以通过改变array.length的值来增加或者删除数组的长度,若增加若干长度,为声明的部分用undefinded填充。
4.检测数组:Array.isArray()
5.迭代器方法
返回数组索引:keys=() 返回数组元素:values() 返回索引/值对:entries()
const Superhero = ['IronMan','SpiderMan','Hulk']
for(const [idx,element] of Superhero.entries()){
alert(idx);
alert(element);
}
6.复制和填充方法
fill() copyWithin()
ps:给了我一个华为P40ProPlus,我却只能用它打电话,等以后哪天我用它上网了我一定回来补上
7.转换方法
toString() toLocalString() valueOf
可以用join()来改变数组转换过程中的分隔符。比如join('|'),,就变成|了。
8.栈
push() pop()
9.队列
shift() push() unshift()
10.排序
反向排序:reverse()
升序排序:sort()不过如果使用默认这个办法就有点笨,所以sort()因为努力学习他可以接收比较函数了。
function compare(num1,num2){
if(num1 < num2){
return -1;
}
else if(num1 > num2){
return 1;
}
else{
return 0;
}
}
let values = [0,1,5,10,15];
values.sort(compare);
alert(values); //bingo
如果把±1交换的话,sort()就可以实现倒序排序,比较函数还可以写成一个比较简单的箭头函数:
values.sort((a,b) => a<b ? 1 : a>b ? -1 :0); //这个是降序排列,升序就改变±
11.操作方法
concat()在一个数组后拼接,默认js可以想尽办法帮你直接整合成一个数组,当然如果你就是不想,可以这样👇
let moreNewColors = {
[Symbol.isConcatSpreadable]:true,
length:2,
0:'pink',
1:'cyan'
};
moreNewColors[Symbol.isConcatSpreadable]:false;
这样再把👆按照数组传入就好了。
splice(x,y):在原来的数组中复制x-y一段到新的数组中。当然了你也可以传入负数
❗❗❗splice()红宝书说这个最强大了所以我给他打了惊叹号
🎈删除:给splice()传入两个参数:要删除的第一个元素的位置,和要删除的元素的数量。
🎈插入:给splice()传入三个参数:开始位置、0(要删除的元素数量)和要插入的元素。你可以这样splice(2,0,'red','green')如果你会更多颜色的英语就可以加入更多
🎈替换:一样给splice()传入三个参数:开始位置、1(把你要替换的那个或者那几个先🔪掉)和你要替换的元素。比如splice(2,1,'red','blue')把第二个元素换成红色和蓝色,没想到吧我英语也不戳
12.搜索和位置方法
严格相等:indexOf() lastIndexOf() includes()
断言函数:find() findIndex()
没咋看懂这两个的区别
13迭代方法
every():对数组的每一项都运行传入的函数,如果每一项都是true,那么就返回true
filter():对数组的每一项都运行传入的函数,把返回true的项组成数组返回
forEach():对数组每一项都运行函数,没有返回值
map():对数组每一项都运行传入函数,返回有每次函数调用的结果构成的数组
some():对数组的每一项都运行传入的函数,如果有一项是true,那么就返回true
14.归并方法
看起来有点点像递归,但是也没有特别懂
reduce()
reduceRight()
别看我写了两行,只不过是遍历数组的方向不一样而已。
都会接受四个参数:上一个归并值,当前项,当前项的索引和数组本身
let nalues = [1,2,3,4,5];
let sum = values.reduce((prev,cur,index,array) =>prev + cur);
alert(sum); //15
文章内容参考:JavaScript高级程序设计(第四版)标题样式来自:juejin.cn/post/684490…
哪里写错了就联系我🐧:54269504