js笔记2
## 1函数递归
函数递归---自己调用自己
## 2变量
全局变量
1在函数外部定义的变量
2在任何地方可以使用
局部变量
1函数体内部通过var定义的变量
2局部变量只能在所在函数内使用
3当局部变量与全局变量同名时,用自己的
变量不加var 默认是隐形的全局变量 但是书写的时候一定要加
浏览器
js解析器或js引擎
1预解析
没有解读代码之前的操作 会找var function
变量声明提升
2逐行去解读代码
# 3数组API
api application interface 应用程序接口
数组的增加与删除
arr.push() 在数组的末尾增加一个或者多个元素
arr.unshift()在数组的前面增加一个或者多个元素
arr.pop()在数组的末尾删除一个元素
arr.shift()在数组的前面删除一个元素
删除的时候括号里面不需要加东西
splice()在数组任意位删除或添加元素
splice(3,2)从索引为3开始 删除两个元素 索引3也删除
splice(3,0,3,5)从索引为3的位置开始 删除0个 插入两个 插入的元素下标从3开始
```
var arr1=[1,2,3,4];
var arr2=[5,6,7,8];
var res =arr1.concat(arr2,9);
console.log(res);
Array(9) [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
```
concat表示数组连接其他值 不改变原数组
迭代器方法
every方法会迭代数组中的每个元素 直到遇到返回false
arr.every(function);
也会迭代每个元素 直到遇到true结束
arr.some(function);
循环整个数组与for循环结果相同
arr.forEach(function)
返回一个新数组 新数组返回函数所有的true和false
arr.map(function)
返回一个新数组 新数组由函数返回值为true的元素组成
arr.filter()
arr.reduce()
数组逆序
reverse()
数组排序
sort() sort是把数组中的元素按照字符串排序的
搜索问题
indexOf()
从数组的末尾去找
lastIndexOf()
# 4字符串
api
str.charAt(n); 返回位置n上的字符
str.charCoedAt(n)返回位置n上的字符的Unicode编码
"a" 97 "A" 65 "0" 48
String.fromCharCode(n)返回数字对应的字符
indexOf("字符")从左到右在字符串中查到第一个符合的字符找不到返回-1
lastIndexOf("字符")从右开始就是从后面开始
substr(n)表示字符串从n这个位置一直截取到最后 原来的字符串不变
substr(n,length)表示字符串从num这个位置截取length长度的的字符串
substring(n)表示字符串从n这个位置一直截取到最后 原来的字符串不变
substring(n,n)表示字符串从n开始截取到n的位置,但是不包含n这个位置
split()把字符串分隔为字符串数组
join()把字符串连接