2023-5-11(第七天)

56 阅读2分钟

数组API

数组排序

默认:将数组中的元素转为字符串后,再按位比较每个字符的ASCII码

arr.sort();
使用匿名回调函数实现数字排序
arr.sort(function(a,b){
    return a-b;    ---->升序排序
    return b-a;    ---->降序排序
})
​
//a:前一个元素
//b:后一个元素

栈和队列:添加/删除元素的新方式

栈: 一端封闭,只能从另一端进出

队列: 一端进,另一端出

开头进
arr.unshift(新值);
开头出
arr.shift();
​
//一次只能删除最后一个元素
//有返回值,返回值为被删除的元素
结尾进
arr.push(新值);
结尾出
arr.pop();

ES5提供的6个新的API

判断
  • every

    要求所有元素都满足条件结果才为true,只要有一个不满足结果都为false,相当于 与&&

    arr.every(function(val,i,arr){
        return 判断条件
    })
    
  • some

    只要有一个元素满足条件结果就为true,相当于 或||

    arr.some(function(val,i,arr){
        return 判断条件
    })
    
遍历
  • forEach

    直接修改原数组

    arr.forEach(function(val,i,arr){
    	操作
    })
    
  • map

    不会修改原数组

    var newArr=arr.map(function(val.i,arr){
    	return 操作
    })
    
过滤

不会修改原数组

var newArr=arr.filter(function(val,i,arr){
	return 过滤条件;
})
汇总

不会修改原数组

var newArr=arr.reduce(function(total,val,i,arr){
	return total+val;
})

//total:保存每次汇总的结果
箭头函数

function去掉,()和{}之间添加=>;

如果形参只有一个,那么()可以省略;

如果函数体只有一句话,那么{}可以省略;

如果函数体只有一句话且是return,则{}和return可以省略

二维数组

使用场景:

在一个数组中,希望再次细分每个分类

访问:

数组名[行下标][列下标]

特点

  • 列下标越界,则返回undefined
  • 行下标越界,则报错

遍历二维数组

两层循环,外层循环控制行,内层循环控制列

String的概念

概念

多个字符组成的【只读】字符【数组】

与数组的相同点

  1. 字符串的长度:str.length
  2. 获取字符串中的某个字符:str[i]
  3. 遍历字符串(for、for in)
  4. 所有数组不修改原数组的API,字符串都可以使用

引用/对象类型

  • String、Number、Boolean

  • Array、Function、Date、Math、RegExp

  • Error

  • Object

  • Global

    • 在浏览器中被window对象代替了,保存着全局变量和全局函数

包装类型

作用:专门用于将原始类型的值封装为一个引用类型

使用: 原始类型调用属性或方法的时候,自动包装

释放: 方法调用完毕后,自动释放包装类型,变回原始类型