数组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的概念
概念
多个字符组成的【只读】字符【数组】
与数组的相同点
- 字符串的长度:str.length
- 获取字符串中的某个字符:str[i]
- 遍历字符串(for、for in)
- 所有数组不修改原数组的API,字符串都可以使用
引用/对象类型
-
String、Number、Boolean
-
Array、Function、Date、Math、RegExp
-
Error
-
Object
-
Global
- 在浏览器中被window对象代替了,保存着全局变量和全局函数
包装类型
作用:专门用于将原始类型的值封装为一个引用类型
使用: 原始类型调用属性或方法的时候,自动包装
释放: 方法调用完毕后,自动释放包装类型,变回原始类型